欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

软件构造笔记策略设计模式

程序员文章站 2022-03-10 14:15:07
...

软件构造笔记策略设计模式
操作实例
抽象类

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是为了可复用而设计的设计模式,在具体分类中它属于行为模式,可以理解为根据不同的行为来具体分类,但是虽说行为不同,但是他们也是有共同的特点。具体成事件就比如两种方法都可以完成一件事,但是不同人有不一样的喜好,那我们就可以创建一个”接口”,有了完成这一事件的接口之后处理方式就可以更加圆滑方便。