给一个对象(context )以不同的策略(Strategy ),该对象就会执行不同的策略算法,这里需要三个对象
public interface Strategy {
abstract void travel();
}
public class aircraft implements Strategy {
public void travel() {
System.out.println("坐飞机");
}
}
public class train implements Strategy {
public void travel() {
System.out.println("坐火车");
}
}
public class Context {
private Strategy st;
public Context(Strategy st) {
this.st = st;
}
public void Setout(){
System.out.println("Coneext去旅游——————策略算法为:");
st.travel();
}
}
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去旅游——————策略算法为:
坐火车
说到底策略模式和装饰者模式还是有很大的相似性,都是通过包装来实现----装饰者模式
原文:https://www.cnblogs.com/Howlet/p/12027704.html