设计模式--行为型-Strategy(策略)

来源:互联网 发布:相机驱动源码 编辑:程序博客网 时间:2024/04/29 00:19

 

 

 

计模式--行为型-Strategy(策略)

 

 

 

1. 意图

 

    定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。

 

 

 

2.结构图

 

 

 

 

 

 

3. 简述

 

    这是个极其常见的模式,就是利用了面向对象语言的多态性。当代码中出现大量的条件语句时,比如

switch(_breakingStrategy)

{

        case SimpleStrategy:

                  ComposeWithSimpleCompositor();

        break;

         caseTexStrategy:

                  ComposeWithTexCompositor();

        break;

        

}

    这个类写了很多不同的处理方法,新增方法,需要重新定义该类。这时就可以用Strategy模式消除case。并且提高可维护性。

       Strategy模式的一个重要的应用是在MVC模式。MVC中的ViewController就是用的Strategy模式。一个View可以对应多种Controller。每个Controller实现一种响应方式,View就相当于Strategy模式中的Context

 

 

4.实例代码

 
class Context{Strategy* _strategy;public:Context(Strategy*);void Process(){…_strategy-> Algorithm();…}};class Strategy{Strategy();public:virtual void Algorithm();};class ConcteteStrategyA : public Strategy{public:void Algorithm();};class ConcteteStrategyB : public Strategy{public:void Algorithm();};

0 0
原创粉丝点击