c设计模式装饰模式

c设计模式装饰模式

ID:40051893

大小:2.31 MB

页数:25页

时间:2019-07-18

c设计模式装饰模式_第1页
c设计模式装饰模式_第2页
c设计模式装饰模式_第3页
c设计模式装饰模式_第4页
c设计模式装饰模式_第5页
资源描述:

《c设计模式装饰模式》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、DesignPatterns装饰模式刘伟(Sunny)weiliu_china@126.com大纲装饰模式概述装饰模式的结构与实现装饰模式的应用实例透明装饰模式与半透明装饰模式装饰模式的优缺点与适用环境装修前装修后装饰模式概述现实生活中的“装饰”实例装饰模式概述装饰模式分析可以在不改变一个对象本身功能的基础上给对象增加额外的新行为是一种用于替代继承的技术,它通过一种无须定义子类的方式给对象动态增加职责,使用对象之间的关联关系取代类之间的继承关系引入了装饰类,在装饰类中既可以调用待装饰的原有类的方法,还可以增加新的方法,以扩展原有

2、类的功能装饰模式概述装饰模式的定义对象结构型模式装饰模式:动态地给一个对象增加一些额外的职责。就扩展功能而言,装饰模式提供了一种比使用子类更加灵活的替代方案。DecoratorPattern:Attachadditionalresponsibilitiestoanobjectdynamically.Decoratorsprovideaflexiblealternativetosubclassingforextendingfunctionality.装饰模式概述装饰模式的定义以对客户透明的方式动态地给一个对象附加上更多的责任可以在

3、不需要创建更多子类的情况下,让对象的功能得以扩展装饰模式的结构与实现装饰模式的结构装饰模式的结构与实现装饰模式的结构装饰模式包含以下4个角色:Component(抽象构件)ConcreteComponent(具体构件)Decorator(抽象装饰类)ConcreteDecorator(具体装饰类)装饰模式的结构与实现装饰模式的实现抽象构件类典型代码:abstractclassComponent{publicabstractvoidOperation();}装饰模式的结构与实现装饰模式的实现具体构件类典型代码:classConcr

4、eteComponent:Component{publicoverridevoidOperation(){//基本功能实现}}装饰模式的结构与实现装饰模式的实现抽象装饰类典型代码:classDecorator:Component{privateComponentcomponent;//维持一个对抽象构件对象的引用//注入一个抽象构件类型的对象publicDecorator(Componentcomponent){this.component=component;}publicoverridevoidOperation(){com

5、ponent.Operation();//调用原有业务方法}}装饰模式的结构与实现装饰模式的实现具体装饰类典型代码:classConcreteDecorator:Decorator{publicConcreteDecorator(Componentcomponent):base(component){}publicoverridevoidOperation(){base.Operation();//调用原有业务方法AddedBehavior();//调用新增业务方法}//新增业务方法publicvoidAddedBehavior

6、(){//功能扩展}}装饰模式的应用实例实例说明某软件公司基于面向对象技术开发了一套图形界面构件库——VisualComponent,该构件库提供了大量基本构件,如窗体、文本框、列表框等,由于在使用该构件库时,用户经常要求定制一些特殊的显示效果,如带滚动条的窗体、带黑色边框的文本框、既带滚动条又带黑色边框的列表框等等,因此经常需要对该构件库进行扩展以增强其功能。现使用装饰模式来设计该图形界面构件库。装饰模式的应用实例实例类图图形界面构件库结构图装饰模式的应用实例实例代码(1)VisualComponent:抽象界面构件类,充当抽

7、象构件类(2)Window:窗体类,充当具体构件类(3)TextBox:文本框类,充当具体构件类(4)ListBox:列表框类,充当具体构件类(5)ComponentDecorator:构件装饰类,充当抽象装饰类(6)ScrollBarDecorator:滚动条装饰类,充当具体装饰类(7)BlackBorderDecorator:黑色边框装饰类,充当具体装饰类(8)Program:客户端测试类演示……参考代码(DesignPatternDecoratorSample)装饰模式的应用实例结果及分析实现多次装饰usingSyste

8、m;namespaceDecoratorSample{classProgram{staticvoidMain(string[]args){VisualComponentcomponent,componentSB,componentBB;//全部使用抽象构件定义c

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。