您的位置:首页 > 其它

设计模式学习笔记——策略模式

2014-02-11 21:31 281 查看
我觉得策略模式与工厂方法模式极其相似!
策略模式:



工厂方法模式:



如果单从图来看,看不出有何相似之处。但看看调用方法就知道了:

策略模式:
Context context = new Context();
    AbstractStrategy strategy;
    //采用哪种策略,由调用方决定
    strategy = new ConcreteStrategyA();
    context.setStrategy(strategy);
    context.algorithm();

工厂方法模式:
IFactory factory;
    //采用哪个工厂,由调用方法决定
    factory = new ConcreteFactoryA();
    IProduct product = factory.Create();

策略模式里有个上下文类,与工厂类非常像。在应用这两种模式的代码里,都是由调用方决定采用哪种策略,或者应用哪个工厂。策略代码和工厂代码本身,符合开闭原则,要改就改调用方。当然,这也可以看成是缺点,因为调用方要对策略和工厂非常了解。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: