简单工厂模式”

2019-01-18  本文已影响0人  落雨松

接上一篇“设计模式之单例模式”,本片主要简述简单工厂模式

二、工厂模式

简单工厂模式其实就是一个解耦的过程,当调用接口方(我们称客户端),要使用由接口创建方(服务端)创建的接口实现,同一个父接口下,可能会有不同的接口实现,当客户端使用这些子类实现时,如果全部在客户端进行实例化操作,可能会导致多个客户端的代码耦合,从而使代码变得臃肿,所以这个时候,我们就有了简单工厂模式。在简单工厂里面实例化对象,当服务器端改变子类实现时候,我们可以尽可能的只在简单工厂里面修改实例化的方法,而不用在多个客户端进行大量重复的修改。

下面是一个简单的例子
①提供接口方 :父接口与子类实现

public interface ServerInterface {}
public class Server1 implements ServerInterface {}
public class Server2 implements ServerInterface {}
public class Server3 implements ServerInterface {}

②简单工厂类:

/**
 * @Author : WJ
 * @Date : 2019/1/18/018 14:50
 * <p>
 * 注释:
 * 简单工厂处理类的实例化,解决客户端代码耦合问题
 * (这里额外使用单例模式之枚举类实现对简单工厂类的单例设计)
 */
public enum SimpleFactory {
    INSTANCE;
    public ServerInterface createServer(int type){
        if(type ==1){
            return new Server1();
        }else if(type == 2){
            return new Server2();
        }else {
            return new Server3();
        }
    }
}

③客户端使用接口:

public class Client {
    public static void main(String[] args) {
        ServerInterface server1 =SimpleFactory.INSTANCE.createServer(1);
        ServerInterface server2 =SimpleFactory.INSTANCE.createServer(2);
        System.out.println(server1);
        System.out.println(server2);

    }
}
上一篇下一篇

猜你喜欢

热点阅读