【设计模式】简单工厂模式
一、简单工厂模式
以汽车厂生产为例子:
- 工厂角色:(汽车厂)一个静态公有成员方法负责生产符合要求的产品;
- 抽象产品:是一个抽象类,其派生类有各种各样的产品;
- 具体产品:汽车car、公交车bus
对应的代码:SimpleFactory.h
1 |
|
client.cpp
1 |
|
二、使用unique_ptr的优化
SimpleFactory.h
1 |
|
client.cpp
1 |
|
三、简单工厂模式总结
(1)优点
- 实现了对象创建和使用的分离
- 客户端仅需知道产品名对应参数即可,无需记忆类名
- 客户端可使用配置文件,不修改客户端代码的前提下,提高系统的灵活性
(2)缺点
- 工厂类职责过重
- 增加类个数,增加系统了系统的复杂程度
- 系统扩展困难,一旦增加新产品就必须修改工厂逻辑,当产品过多时就会导致工厂类过于复杂
- 简单工厂模式使用了静态工厂方法,造成角色无法形成基于继承的结构。
(3)使用场景
- 工厂类创建对象较少
- 客户端只关心传入工厂参数,不关心如何创建对象。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 code-016!