策略模式
策略模式:简单的说就是做一件事情有不同的方法即策略实现。
策略模式包括3个角色:
● 环境(Context)角色:持有一个Strategy的引用。
● 抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类 所需的接口。
● 具体策略(ConcreteStrategy)角色:包装了相关的算法或行为。
比如:从北京到上海,可以做飞机,火车,高铁,的士等
public class MyClass {
interface Strategy{
public void transports();
}
static class Text implements Strategy{
@Override
public void transports() {
System.out.print("选择的出行方式是 : 的士");
}
}
class Plane implements Strategy{
@Override
public void transports() {
System.out.print("选择的出行方式是 : 飞机");
}
}
class Train implements Strategy{
@Override
public void transports() {
System.out.print("选择的出行方式是 : 火车");
}
}
static class Context {
public Strategy strategy;
public void setStrategy(Strategy strategy){
this.strategy = strategy;
strategy.transports();
}
}
public static void main(String args[]){
Context context = new Context();
context.setStrategy(new Text());
}
}