给一个对象(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去旅游——————策略算法为:
坐火车说到底策略模式和装饰者模式还是有很大的相似性,都是通过包装来实现----装饰者模式