策略模式
What
策略模式(Strategy Pattern)
Bing搜索结果
In computer programming, the strategy pattern (also known as the policy pattern) is a behavioral software design pattern that
enables selecting an algorithm at runtime
. Instead of implementing a single algorithm directly, code receives run-time instructions as to which in a family of algorithms to use.
一个类的行为或其算法可以在运行时更改
How
//测试类
public class Test {
public static void main(String []args) {
Context context = new Context();
//模拟运行中context改变策略影响其行为
context.setStrategy(new RunStrategy());
context.doStrategy();
context.setStrategy(new WalkStrategy());
context.doStrategy();
context.setStrategy(new BusStrategy());
context.doStrategy();
}
}
//一个行为随着策略对象改变而改变的 context 对象
class Context {
private Strategy strategy;
public void setStrategy(Strategy strategy){
this.strategy = strategy;
}
public void doStrategy(){
strategy.goHome();
}
}
//回家策略
interface Strategy{
void goHome();
}
//跑步回家策略
class RunStrategy implements Strategy{
@Override
public void goHome(){
System.out.println("通过跑步回家!");
}
}
//走路回家策略
class WalkStrategy implements Strategy{
@Override
public void goHome(){
System.out.println("通过走路回家!");
}
}
//搭公交车回家策略
class BusStrategy implements Strategy{
@Override
public void goHome(){
System.out.println("通过搭公交车回家!");
}
}
When & Where
涉及到的涉及原则:单一职责原则Single-Responsibilitiy Principle(SRP)
对一个类而言,应该仅有一个引起它变化的原因。如果存在多于一个动机去改变一个类,那么这个类就具有多于一个的职责,就应该把多余的职责分离出去,再去创建一些类来完成每一个职责。
容错恢复机制:策略模式实际应用场景
结束语:优秀是一种习惯。