工厂模式-Factory

工程模式:实例化对象,用工程方法代替new操作。

  工程模式包括工厂方法模式,和抽象工厂模式。(抽象工厂模式是工厂方法模式的扩展)

工厂模式的意图:

  定义一个接口来创建对象,但是让子类来决定那些类需要被实例化。

  工厂方法把实例化的工作推迟到子类中去实现。

什么情况下适合工厂模式:

  有一组类似的对象需要被创建。

  在编码时不能预见需要创建哪种类的实例。

  系统需要考虑扩展性,不应依赖于产品类实例如何被创建、组合和表达的细节。

工厂模式的代码设计思想:

  尽量松耦合,一个对象的依赖对象的变化与本身无关

  具体产品与客户端剥离,责任分离

简单工厂模式实现:

  public class HairFactory {

    public HairInterface getHair(String hair) {
      if ("left".equalsIgnoreCase(hair)) {
        return new LeftHair();
      } else if ("right".equalsIgnoreCase(hair)) {
        return new RightHair();
      }
      return null;
    }

  }

抽象工厂模式:

  抽象共工厂模式就是在工厂模式的基础上再在做一层封装,通过抽象的工厂产生不同的工厂类。

原文地址:https://www.cnblogs.com/LionheartCGJ/p/6843659.html