策略设计模式 博客分类: 设计模式 设计模式
程序员文章站
2024-03-14 12:50:58
...
策略设计模式:
概念:定义了算法簇,分别封装起来,让他们之间可以相互替换。此模式让算法的变化独立于使用算法的客户。
个人理解:策略设计模式即是用接口+组合的方式分离实现。伪代码如下:
Cry和Fly都是接口分离了行为,然后利用组合达到复用的目的。这就是策略模式。
概念:定义了算法簇,分别封装起来,让他们之间可以相互替换。此模式让算法的变化独立于使用算法的客户。
个人理解:策略设计模式即是用接口+组合的方式分离实现。伪代码如下:
public abstract class StrategyPatternDuck { private Cry cry; //接口实现叫这个行为 private Fly fly; //接口实现飞这个行为 public StrategyPatternDuck(Cry cry, Fly fly) { //通过构造函数注入 this.cry = cry; this.fly = fly; } private void cry(){ //叫 具体怎么叫 看怎么实现的Cry接口中的cry方法。 cry.cry(); } private void fly(){ //飞 具体怎么飞 看怎么实现的Cry接口中的cry方法 fly.fly(); } //具体外观是什么样由子类实现 public abstract void display(); //通过setter方法注入 public void setCry(Cry cry) { this.cry = cry; } //通过setter方法注入 public void setFly(Fly fly) { this.fly = fly; } }
Cry和Fly都是接口分离了行为,然后利用组合达到复用的目的。这就是策略模式。