1.1.1 描述
l 正规描述
策略模式针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。策略模式把行为和环境分开。环境类负责维持和查询行为类,各种算法在具体的策略类中提供。由于算法和环境独立开来,算法的增减,修改都不会影响到环境和客户端。
l 形象描述
跟不同类型的MM约会,要用不同的策略,有的请看电影比较好,有的则去吃小吃效果不错,有的去海边浪漫最合适,但目的都是为了得到MM的芳心,我的追MM锦囊中有好多Strategy哦。
1.1.2 类图&示意代码
public abstract class Strategy(){ public abstract void Operation1(); }
public class ConcreteStrategy1 extends Strategy(){ public void Operation1(){ //to do } }
public class ConcreteStrategy2 extends Strategy(){ public void Operation1(){ //to do } }
public class StrategyUser(){ public void Operation1 (int which){ Strategy s; if(which == 1){ s = new ConcreteStrategy1(); }else if(which == 2){ s = new ConcreteStrategy2(); }
if(s != null){ s.Operation1(); } } }
public class Client(){ public void main(String args[]){ StrategyUser su = new StrategyUser(); su.Operation1(1); su.Operation1(2); } } |
注: