开头说几句
博主博客地址: https://www.jeffcc.top/
设计模式系列是我通过看 Head First 的《设计模式》中学到的知识总结,这是本不错的设计模式入门书籍,强烈推荐!
什么是策略模式
权威定义:策略模式定义了算法簇,使不同的行为分别封装起来,让他们可以相互替换,此模式让算法的变化独立于使用算法的对象!
我的理解:将相同的行为共同封装进入超类,不同的行为单独封装,以实现功能!
设计原则
- 找到应用中可能需要变化的部分,并且把他们独立起来,通过面向接口的编程方式进行独立划分,不需要和那些不需要变化的代码混合在一起。
- 针对接口(超类型)编程,而不是针对实现编程。
- 多用组合,少用继承。
模式实例
背景
- 需要定义一个鸭子超类,用于显示组合鸭子的共性的行为;
- 需要我们定义出一些鸭子的所具有的一些特性:例如飞行和叫声的行为单独接口组合
- 实现鸭子的相关正确的行为,(不会出现橡皮鸭会飞等的情况)
代码实现
项目类图
项目结构
鸭子的超类
模型鸭类
叫声行为接口
不能飞的实现类
可以飞的实现类
叫声行为接口
不能叫的实现类
哇哇叫的实现类
呱呱叫的实现类
测试类
输出结果:
END
2019 年 9 月 2 日 19:55:03
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于