软件构造笔记策略设计模式
软件构造笔记策略设计模式
操作实例
抽象类
public abstract class AbstractStrategy {
public abstract void algorithm(); //声明抽象算法
}
子类实现
public class ConcreteStrategyA extends AbstractStrategy {
//算法的具体实现
public void algorithm() {
//算法A
}
}
context环境设置
就是初始化,也叫维持一个对抽象类的引用,并且调用抽象类定义的方法,方便以后传入子类时直接调用子类的方法。
public class Context {
private AbstractStrategy strategy; //维持一个对抽象策略类的引用
public void setStrategy(AbstractStrategy strategy) {
this.strategy= strategy;
}
//调用策略类中的算法
public void algorithm() {
strategy.algorithm();
}
}
在Context类中定义一个AbstractStrategy类型的对象strategy,通过注入的方式在客户端传入一个具体策略对象,客户端代码片段如下所示:
……
Context context = new Context();
AbstractStrategy strategy;
strategy = new ConcreteStrategyA(); //可在运行时指定类型
context.setStrategy(strategy);
context.algorithm();
首先Strategy是为了可复用而设计的设计模式,在具体分类中它属于行为模式,可以理解为根据不同的行为来具体分类,但是虽说行为不同,但是他们也是有共同的特点。具体成事件就比如两种方法都可以完成一件事,但是不同人有不一样的喜好,那我们就可以创建一个”接口”,有了完成这一事件的接口之后处理方式就可以更加圆滑方便。
上一篇: 软件构造 课堂笔记3
下一篇: 软件构造-decorator 设计模式