设计模式-工场模式

2020-11-25  本文已影响0人  Wu杰语

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

具体实例

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对象,就只增加其实现,使用时修改配置文件中的对象名。从而保持工厂对象的代码符合开闭原则。

小结

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

上一篇 下一篇

猜你喜欢

热点阅读