《设计模式17》-行为的变化_第1页
《设计模式17》-行为的变化_第2页
《设计模式17》-行为的变化_第3页
《设计模式17》-行为的变化_第4页
《设计模式17》-行为的变化_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四部分 行为型设计模式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.解释器模式(Interpr

2、eter 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: v

3、irtual 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一旦具体类确定了,类的

4、行为就确定了。即无论该类有多少个对象,各对象的行为完全一致,且在实例化时就确定了,而在运行期间不会改变。v举例:Do1的实现变化;Do2的实现变化AbsSome+Do1 ()Do2 ().: void: voidv只有Do1的实现改变AbsSome+Do1 ()Do2 ().: void: voidSome1+Do1 ().: voidSome2+Do1 ().: voidSome3+Do1 ().: voidAbsSome:Do1() impDo1-Do1( );AbsSome:Do2() impDo2-Do2( );1.11.11.11.1AbsSome-impDo1impDo2: IDo

5、1: IDo2+Do1 ()Do2 ().: void: voidDo1Imp1+Do1 ().: voidDo1Imp2+Do1 ().: voidDo1Imp3+Do1 ().: voidIDo1+Do1 ().: voidDo2Imp1+Do2 ().: voidDo2Imp2+Do2 ().: voidDo2Imp3+Do2 ().: voidIDo2+Do2 ().: voidDo1和Do2同时变化具体类行为的动态性v可以动态改变行为的执行结果执行结果v根据:环境上下文、当前配置文件、系统状态客户的主观意愿,选择的策略等class Some public: void do() /*.;*/ pObj-Func(); /*; */ void Change(MyObject * o) pObj = o; private: MyObject * pObj;MyObjectSubClass1SubClass2交互上的变化需要v直接交互/间接交互?v依赖型交互/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论