《设计模式》之工厂方法

1、动机

  1. 在软件工程中,经常面临对象的创建工作,由于需求的变化,需要创建的对象的具体类型也是变化的。
  2. 避开常规的对象创建方法(new),提供一种封装的机制来避免客户程序和这种对象创建工作之间的紧耦合。
  3. 将类的实例化工作延迟到子类中。

2、类结构

在这里插入图片描述
上述实现方式具体产品和具体工厂是一一对应的关系。

3、使用方式

客户程序根据需要实例化工厂对象,并通过工厂对象提供的接口创建具体的产品对象。

4、总结

  1. 工厂模式用于隔离类对象的使用者和具体类型之间的耦合关系。面对一个经常变化的具体类型,紧耦合关系会导致软件的脆弱。
  2. 工厂模式通过面向对象的手法(多态),将具体对象的创建工作延迟到子类,从而实现一种扩展的策略,较好的解决了这种紧耦合的关系,此方法符合开闭原则(OCP)
  3. 工厂模式解决了单个对象的需求变化。
  4. 要求创建方法/参数相同(缺点) ,在产品类型增加时则需要同时创建产品类型和与之对应的工厂类,类的数量会成倍的增加,一定程度上增加了程序的复杂度
  5. 只能针对一类类的创建,如果需要创建不同类,则本方法不适用(缺点);如果需要针对一系列类,那么可以使用抽象工厂模式。

5、代码实现(C++)

工厂方法实现源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值