Head First Design Patterns - 策略模式

发布时间:2023年12月24日

策略模式

策略模式:策略模式是一种行为型模式,它将对象和行为分开,将行为定义为 一个行为接口具体行为的实现。策略模式最大的特点是行为的变化,行为之间可以相互替换。每个if判断都可以理解为就是一个策略。本模式使得算法可独立于使用它的用户而变化

书中的例子

在这里插入图片描述
将鸭子类中经常发生变化的飞行行为喊叫行为单独封装成一个接口,不同鸭子的行为会实现该接口。

不同的鸭子和抽象类鸭子(Duck)是继承 IS A关系
飞行行为和喊叫行为跟鸭子(Duck)是HAS A的关系
具体的飞行行为对行为接口的实现,是实现的关系

策略模式所涉及到的设计原则

  1. 封装变化。识别应用中变化的方面,把它们和不变的方面分开。
  2. 针对接口编程,而不是针对实现编程。
  3. 优先使用组合而不是继承。

策略模式的优缺点

优点

  • 策略模式提供了对“开闭原则”的完美支持,用户可以在不 修改原有系统的基础上选择算法或行为,也可以灵活地增加 新的算法或行为。

  • 策略模式提供了管理相关的算法族的办法。

  • 策略模式提供了可以替换继承关系的办法。

  • 使用策略模式可以避免使用多重条件转移语句。

缺点

  • 客户端必须知道所有的策略类,并自行决定使用哪一个策略类。
  • 策略模式将造成产生很多策略类,可以通过使用享元模式在一 定程度上减少对象的数量。

参考:策略模式

文章来源:https://blog.csdn.net/kwb2015130086/article/details/135180673
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。