美文网首页
简单工厂模式”

简单工厂模式”

作者: 落雨松 | 来源:发表于2019-01-18 15:07 被阅读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);
    
        }
    }
    

    相关文章

      网友评论

          本文标题:简单工厂模式”

          本文链接:https://www.haomeiwen.com/subject/sojndqtx.html