//调用者
public class StrategyDemo {
public static void main(String[] args) {
//动态的选择某一种算法策略
Context context1 = new Context(new OperationStrategy1());
context1.executeStrategy();
Context context2 = new Context(new OperationStrategy2());
context2.executeStrategy();
}
}
//策略接口
interface Strategy {
void operate();
}
//策略具体算法实现
class OperationStrategy1 implements Strategy {
@Override
public void operate() {
System.out.println("operation1");
}
}
class OperationStrategy2 implements Strategy {
@Override
public void operate() {
System.out.println("operation2");
}
}
//使用了某种策略的类。
class Context {
private Strategy strategy;
public Context(Strategy strategy) {
this.strategy = strategy;
}
public void executeStrategy() {
strategy.operate();
}
}
java 策略模式
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 策略模式 将类中未来可能会变化的需求抽取为接口,而在这个类中持有那个接口的引用,编程时使用接口,而不是那个接口的实...