工厂模式

用于创建复杂对象。

  • 定义实体类的接口和实体类
  • 定义一个工厂类
  • 将对象实例化封装到工厂方法中,根据参数返回不同的实体对象。
  • 工厂类可以是普通类(通过new实例化)、也可以是单例类或者提供静态方法

核心:返回抽象产品类型

抽象工厂模式

用于创建工厂的超级工厂

  • 定义一个抽象工厂类和抽象方法
  • 定义不同种类的工厂类,继承抽象工厂,并实现抽象方法,创建不同种类的对象,如ColorFactory、ShapeFactory
  • 定义工厂生成器类,提供方法用于创建不同的工厂,实际上是选择不同的实体类接口
  • 定义不同实体类的接口和实体类。如Circle、Rectangle实现Shape接口,Red、Green实现Color接口
  • 通过不同的工厂生成不同的接口对象

一个工厂生产多种类型的产品

例如GTK和QT等UI套件相当于工厂,都可以生成按钮、文本、输入框等控件,一个工厂生产一个产品族的产品

核心是面向接口编程,工厂类和实体类都使用接口来声明,根据参数创建具体的对象,外部不需要知道具体的类的名称

http://c.biancheng.net/view/1324.html

https://yearn.xyz/posts/techs/%E5%B8%B8%E8%A7%81%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/

https://www.liaoxuefeng.com/wiki/1252599548343744/1264742167474528

results matching ""

    No results matching ""