策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。
策略模式中需要三个角色:
—抽象策略角色: 策略类,通常由一个接口或者抽象类实现。
public interface IStrategry {
public void shiFang();
}
—具体策略角色:包装了相关的算法和行为。
public class Method1 implements IStrategry{
public Method1() {
}
@Override
public void shiFang() {
System.out.println("使用了算法一");
}
}
}
@Override
public void shiFang() {
System.out.println("使用了算法一");
}
}
—环境角色:持有一个策略类的引用,最终给客户端调用。
public class Context {
private IStrategry stra;
public Context(IStrategry stra) {
this.stra = stra;
}
public void shiFang(){
this.stra.shiFang();
}
}
private IStrategry stra;
public Context(IStrategry stra) {
this.stra = stra;
}
public void shiFang(){
this.stra.shiFang();
}
}
策略模式解析
本文介绍了策略模式的概念及其在软件设计中的应用。策略模式通过定义一系列可互换的算法并将其封装,使得这些算法能够独立于使用它们的客户端进行变化。文中详细展示了策略模式中的三个关键角色:抽象策略、具体策略及环境角色。
160

被折叠的 条评论
为什么被折叠?



