策略模式

策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。

一个对象有很多行为,避免用众多if……else if这种形式把这些行为转移到相应的具体策略中,可避免难以维护的多重选择。

适用场景:一个系统需动态的在几种算法中选一种。

 1 //抽象策略接口
 2 interface Strategy{
 3     //策略方法
 4     public void method();
 5 }
 6 
 7 //具体策略类
 8 class ConcreteStrategyA implements Strategy{
 9 
10     @Override
11     public void method() {
12         //具体业务代码
13     }
14     
15 }
16 
17 class ConcreteStrategyB implements Strategy{
18 
19     @Override
20     public void method() {
21         //具体业务代码
22     }
23     
24 }
25 
26 //环境角色类
27 class Context{
28     //持有一个具体策略对象
29     private Strategy strategy;
30     
31     public Context(Strategy strategy){
32         this.strategy = strategy;
33     }
34     
35     //策略方法
36     public void method(){
37         strategy.method();
38     }
39 }
原文地址:https://www.cnblogs.com/gsbm/p/4806327.html