策略模式 一个类的行为或其算法可以在运行时更改。
什么情况用策略模式呢?
就是在不同的情况下需要使用不同的策略,我的理解:简单来说,就是当你不想使用过多if()else()的时候,因为当有多个if else的时候,程序就显得复杂不可控。
那么怎么实现策略模式呢?
首先建立一个策略接口,有一个打招呼的方法。
public interface Strategy {
public void sayHi();
}
接着我们建立不同的类来实现他,首先东北人打招呼。
public class NorthEastPeople implements Strategy {
@Override
public void sayHi() {
System.out.println("大妹纸,干啥去啊!");
}
}
香港人打招呼。
public class HongkongPeople implements Strategy {
@Override
public void sayHi() {
System.out.println("雷猴啊!雷猴宾抖啊!");
}
}
英国人打招呼。
public class EnglishPeople implements Strategy {
@Override
public void sayHi() {
System.out.println("Hello!Nice to meet you!");
}
}
接下来建立一个context类。加载策略。
public class Context {
private Strategy strategy;
public Context(Strategy strategy){
this.strategy = strategy;
}
public void executeStrategy(){
strategy.sayHi();
}
}
最后测试类test。根据不同需求执行不同策略。
public class Test {
public static void main(String[] args) {
Context context=new Context(new NorthEastPeople());
context.executeStrategy();
context=new Context(new EnglishPeople());
context.executeStrategy();
context=new Context(new HongkongPeople());
context.executeStrategy();
}
}
运行结果:
大功告成!