美文网首页
设计模式-工场模式

设计模式-工场模式

作者: Wu杰语 | 来源:发表于2020-11-25 23:08 被阅读0次

    工厂模式,是一种常见的设计模式,工厂模式是创建者模式一,通过工厂模式,调用者可以通过名称创建对应的对象,只关注接口就可以了。

    具体实例

    interface Service {
      void dowork();
    }
    
    public ServiceFactory {
      public Service makeService(String name) {
        if (name.equal("A")) {
            return new AService();
        } else if (name.equal("B")) {
            return new BService();
        } else if ...
      }
    }
    
    public AService implements Service {
      public void dowork() {
      }
    }
    
    public BService implements Service {
      public void dowork() {
      }
    }
    
    

    这是我们常见的简单工厂的实现方式,调用者使用简单工厂,能将构建过程集中在工厂中,业务逻辑类保持一致,但是当增加一种新的业务时,需要将增加工厂类代码。为了让工厂类也符合开闭原则,有抽象工厂的实现方式。

    public AbstruactServiceFactory {
      public Service makeService() {
          try {
              String name = Config.getClassName();
              Class impl= Class.forName(ImplName);
              return (Service)impl.newInstance()
          } catch (Exception ex) {
             ...                     
          }
      }
    }
    

    这种方式从配置文件中读取类名,然后构造出新的对象,增加一个Service对象,就只增加其实现,使用时修改配置文件中的对象名。从而保持工厂对象的代码符合开闭原则。

    小结

    工厂模式使得逻辑类变得职责单一,变化封装在工厂中,增加了代码的可复用性。

    相关文章

      网友评论

          本文标题:设计模式-工场模式

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