码迷,mamicode.com
首页 > 其他好文 > 详细

4.工厂模式

时间:2020-01-17 15:11:07      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:加工   接口   派生   uml图   包含   模板方法   style   方式   class   

工厂模式:父类决定实例的生成方式,但并不决定所要生成的具体类,具体的处理细节全部交由子类做具体实现。从而可以将生成实例的框架和实际负责生成实例的类进行解耦。模板方法模式的典型应用。工厂模式中应会有模板方法模式的出现。

①.工厂模式分类

  • 工厂方法模式
    简单工厂模式:工厂方法模式的一种特例.
    • 一个抽象产品类,可以派生出多个具体的产品类。
    • 一个抽象工厂类,可以派生出多个具体的工厂类。
    • 每一个具体工厂只能创建一个具体产品类的实例。
  • 抽象工厂公式
    • 多个抽象产品类,每一个抽象产品类可以派生出多个具体产品类。
    • 一个抽象工厂类,可以派生出多个具体工厂类。
    • 每一个具体工厂可以创建多个具体的产品类实例

区别:

# 1.工厂方法模式只存在一个抽象产品类,但抽象工厂具有多个抽象产品类。
# 2.工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式可以创建多个具体产品类实例。

②.工厂角色职责

  • Product(产品)
    一个抽象类:定义工厂模式中生成的那些实例的所持有的接口。具体的处理由子类ConcreateProduct类所决定。

  • ConcreateProduct(具体产品)
    属于具体加工职责:决定了具体生产出的产品。

  • Creator(创建者)
    一个抽象类:不适用new关键字生成实例,而是通过调用生成实例的专用方法生成实例,以至于降低父类与其他类的耦合性。Creator角色对实际负责具体产品生产的ConcreateCreator角色全然不知。唯一清楚的是:只要调用Product角色和生成实例的方法,就能生成Product的实例。

  • ConcreateCreator(具体创建者)
    属于具体加工职责:负责生产出具体的抽象产品。

③.UML图

④.代码清单

⑤.注意事项

使用设计模式设计类时,开发人员必须交代清楚使用这些设计模式设计类的意图。
否则,在后续更新迭代中及其容易违背原始意图。
所以,在程序中需要注释出所有设计模式所包含的名称、意图等。

4.工厂模式

标签:加工   接口   派生   uml图   包含   模板方法   style   方式   class   

原文地址:https://www.cnblogs.com/stupidhao/p/12205823.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!