Head First 设计模式——策略

适用条件:

首先,简单的继承无法有效地解决问题;

其次,父类的动作/行为在子类中不断变化,让所有的子类都有这些行为是不恰当的;

再次,接口或者是纯虚函数没有实现,无法达到复用的目的,而这些动作在比较多的子类中被使用

如果出现以上的情况,你就需要尝试使用策略模式来解决问题了。


设计原则:

1) 找出应用中可能需要的变化之处,并把它们独立出来。

2) 针对接口编程,而不是针对实现编程。


主要实现方式:

通过将对象中的变化委托给其他部分处理的方式,将变化从应用中独立出来——将变化封装成接口,在基类中加入其实例。


通过这种方式,使用接口封装后,直接调用接口的动作,而不用在意接口中的动作具体是如何实现的。这样可以在继承基类时对接口进行不同的调用,而不必改变基类中的代码。


主要步骤:

1) 将主类中的变化部分和不会变化的部分分离开

2) 设计变化的部分,封装成接口

3) 继承变化部分的接口,实现各种不同的变化

4) 设计主类的内容,其中将包括变化部分的接口的一个实例

5) 实现子类,从主类中继承,对于变化部分的实例进行自己的实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值