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

【设计模式】抽象工厂模式

时间:2020-01-22 14:26:02      阅读:56      评论:0      收藏:0      [点我收藏+]

标签:抽象   开闭原则   c++   工厂   需要   反射机制   相互   抽象工厂模式   alt   

抽象工厂模式

抽象工厂模式:提供了一个创建一些列相关或相互依赖对象的接口,而无需指定它们具体的类。

先回顾一下简单工厂和工厂方法:

  • 简单工厂:其有一个产品的抽象基类,从中衍生出多个具体的产品。还有一个工厂类,其中通过switch再利用多态的形式,构建产品。
  • 工厂方法:由于简单工厂如果添加产品就会导致更改了工厂类,违反了开闭原则。所以工厂方法将工厂也抽象,由一个工厂基类,派生出与产品类对应的工厂子类。

如果说当工厂生产的产品无法共同抽象出一个工厂基类怎么办?

举个栗子:我生产的运动裤,牛仔裤,卫衣,棉衣。那么我需要的是一个裤子的基类和一个衣服的基类。

技术图片
技术图片

抽象工厂的好坏:

-优点:可以很方便得切换两个工厂。
-缺点:但是如果再添加工厂那改的类就需要好多。(可以利用反射机制改进,但C++中没有该机制,带Java中遇到深入看看)

【设计模式】抽象工厂模式

标签:抽象   开闭原则   c++   工厂   需要   反射机制   相互   抽象工厂模式   alt   

原文地址:https://www.cnblogs.com/LampsAsarum/p/12228358.html

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