23种设计模式 VOL.2: 工厂模式

思想: 调用方无需关心具体的实现细节, 实现的细节在工厂里处理, 调用者要什么工厂里有就返回什么;


  • 由各地区订购披萨案例, 引出工厂模式的思考:
  1. 案例模型
    1.   23种设计模式 VOL.2: 工厂模式         23种设计模式 VOL.2: 工厂模式
      1. 产生的问题: 增加新品披萨后每个订购区域得重新依赖新品种, 如果区域有很多后期得每个区域去改变现有代码, 这样违背了开闭原则(提供方修改代码后不应该改动调用方的代码);
  2. 代码实现 
    1.  23种设计模式 VOL.2: 工厂模式          23种设计模式 VOL.2: 工厂模式

  • 简单工厂
  1. 模型
    1. 23种设计模式 VOL.2: 工厂模式
  2. 代码实现
    1. 23种设计模式 VOL.2: 工厂模式重复代码就不上了;

  • 工厂方法
    • 说明: 定义获取对象的抽象方法后具体实现由简单工厂实现, 父类调用子类实现的方法来取对象;
    1. 抽象工厂方法类里定义抽象方法, 抽象方法的具体实现由子类简单工厂实现,  在工厂方法类的构造方法里调用抽象方法;
    2. 在客户端创建子类简单工厂对象的同时会实例化父类(执行构造方法), 在父类工厂方法的构造方法里会调用子类简单工厂的方法;
  1. 按地区分披萨口味模型
    1. 23种设计模式 VOL.2: 工厂模式
  2. 代码实现
    1. 23种设计模式 VOL.2: 工厂模式

  • Java中用到的地方
  1. 23种设计模式 VOL.2: 工厂模式