18.策略模式
定义:定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。
优点:
- 算法可以自由切换
- 避免使用多重条件判断
- 扩展性良好
缺点: - 策略类数量多
- 所有的策略类都需要对外暴露
当策略数量超过4个的时候,需要考虑使用混合模式,解决策略类膨胀和对外暴露的问题。
使用场景: - 多个类只有在算法或行为上稍有不同的场景
- 算法需要自由切换的场景
- 需要屏蔽算法规则的场景
19.适配器模式
定义:将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而不能在一起工作的两个类能够在一起工作。
优点:
- 可以让没有任何关系的两个类在一起运行
- 增加了类的透明性
- 提高了类的复用度
- 灵活性非常好
使用场景:当有动机修改一个已经投产中的接口时,适配器模式可能时最适合的模式。
适配器的两种类型:类适配器和对象适配器。
类适配器是类间继承,对象适配器是对象的合成关系。
网友评论