1. 策略模式(Strategy Pattern)
给一个对象(context )以不同的策略(Strategy ),该对象就会执行不同的策略算法,这里需要三个对象
- 策略算法接口
- 每个算法的具体实现
- Context 对象
2. 流程
2.1 策略算法接口
public interface Strategy {
abstract void travel();
}
2.2 策略算法的具体实现
- 坐飞机
public class aircraft implements Strategy {
public void travel() {
System.out.println("坐飞机");
}
}
- 坐火车
public class train implements Strategy {
public void travel() {
System.out.println("坐火车");
}
}
2.3 上下文对象
public class Context {
private Strategy st;
public Context(Strategy st) {
this.st = st;
}
public void Setout(){
System.out.println("Coneext去旅游——————策略算法为:");
st.travel();
}
}
2.4 实现
public static void main(String[] args) {
Context c1 = new Context(new aircraft());
c1.Setout();
System.out.println("------------------------------");
Context c2 = new Context(new train());
c2.Setout();
}
Coneext去旅游——————策略算法为:
坐飞机
------------------------------
Coneext去旅游——————策略算法为:
坐火车
说到底策略模式和装饰者模式还是有很大的相似性,都是通过包装来实现----装饰者模式