资源预览内容
第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
第9页 / 共13页
第10页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第四部分 行为型设计模式1.策略模式(Strategy Pattern) 2.状态模式(State Pattern)3.中介者模式(Mediator Pattern)4.迭代器模式(Iterator Pattern)5.命令模式(Command Pattern)6.责任链模式(Chain of Responsibility Pattern)7.观察者模式(Observer Pattern)行为型设计模式8.模板方法模式(Template Method Pattern)9.访问者模式(Vistor Pattern)10.备忘录模式(Memento Pattern)11.解释器模式(Interpreter Pattern)接口的变化v功能的增加v功能的减少(OO均不支持)v参数个数及类型的变化v可访问性的变化v等等class One public: virtual One() . virtual void Do() . private: int x; int y;;class One public: virtual One() . virtual void Do() . virtual void Do2() . private: int x; int y;;实现的变化v数据表示的变化v行为的变化数据表示的变化v数据的类型、数量、可访问性、组织形式等class One public: virtual One() . virtual void Do() . private: int x; int y; Two * pTwo;;行为的变化v体现在:静态性变化静态性变化v模版的静态性变化v具体类的静态性变化动态性变化动态性变化交互性变化交互性变化模版的静态性变化v可以改变模版的参数v在实例化(编译期)时确定,具体参数template class One public: virtual One() . virtual void Do(T& aT) . private: T * pt;;#include “Two.h”One aOne;具体类的行为静态性v一旦具体类确定了,类的行为就确定了。即无论该类有多少个对象,各对象的行为完全一致,且在实例化时就确定了,而在运行期间不会改变。v举例:Do1的实现变化;Do2的实现变化v只有Do1的实现改变Do1和Do2同时变化具体类行为的动态性v可以动态改变行为的执行结果执行结果v根据:环境上下文、当前配置文件、系统状态客户的主观意愿,选择的策略等class Some public: void do() /*.;*/ pObj-Func(); /*; */ void Change(MyObject * o) pObj = o; private: MyObject * pObj;MyObjectSubClass1SubClass2交互上的变化需要v直接交互/间接交互?v依赖型交互/关联型交互?v交互的主动方和被动方?行为模式主要针对v行为的静态性变化及适应v行为的动态性变化及适应v交互上的变化及使用
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号