设计模式装饰模式.pptx
《设计模式装饰模式.pptx》由会员分享,可在线阅读,更多相关《设计模式装饰模式.pptx(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、装饰模式概述现实生活中的“装饰”实例第1页/共24页装饰模式概述装饰模式分析可以在不改变一个对象本身功能的基础上给对象增加额外的新行为是一种用于替代继承的技术,它通过一种无须定义子类的方式给对象动态增加职责,使用对象之间的关联关系取代类之间的继承关系引入了装饰类,在装饰类中既可以调用待装饰的原有类的方法,还可以增加新的方法,以扩展原有类的功能第2页/共24页装饰模式概述装饰模式的定义对象结构型模式装装饰饰模模式式:动动态态地地给一个对象增加一些额外的职责。就扩展功能而言,装饰模式提供了一种比比使使用用子子类类更更加加灵灵活活的的替替代方案代方案。Decorator Pattern:Attach
2、 additional responsibilities to an object dynamically.Decorators provide a flexible alternative to subclassing for extending functionality.第3页/共24页装饰模式概述装饰模式的定义以对客户透明的方式动态地给一个对象附加上更多的责任可以在不需要创建更多子类的情况下,让对象的功能得以扩展第4页/共24页装饰模式的结构与实现装饰模式的结构第5页/共24页装饰模式的结构与实现装饰模式的结构装饰模式包含以下4个角色:Component(抽象构件)ConcreteCo
3、mponent(具体构件)Decorator(抽象装饰类)ConcreteDecorator(具体装饰类)第6页/共24页装饰模式的结构与实现装饰模式的实现抽象构件类典型代码:abstract class Component public abstract void Operation();第7页/共24页装饰模式的结构与实现装饰模式的实现具体构件类典型代码:class ConcreteComponent:Component public override void Operation()/基本功能实现 第8页/共24页装饰模式的结构与实现装饰模式的实现抽象装饰类典型代码:class Deco
4、rator:Componentprivate Component component;/维持一个对抽象构件对象的引用维持一个对抽象构件对象的引用 /注入一个抽象构件类型的对象注入一个抽象构件类型的对象 public Decorator(Component component)ponent=component;public override void Operation()component.Operation();/调用原有业务方法调用原有业务方法 第9页/共24页装饰模式的结构与实现装饰模式的实现具体装饰类典型代码:class ConcreteDecorator:Decorator publ
5、ic ConcreteDecorator(Component component):base(component)public override void Operation()base.Operation();/调用原有业务方法调用原有业务方法 AddedBehavior();/调用新增业务方法调用新增业务方法 /新增业务方法 public void AddedBehavior()/功能扩展 第10页/共24页装饰模式的应用实例实例说明某软件公司基于面向对象技术开发了一套图形界面构件库VisualComponent,该构件库提供了大量基本构件,如窗体、文本框、列表框等,由于在使用该构件库时,
6、用户经常要求定制一些特殊的显示效果,如带滚动条的窗体、带黑色边框的文本框、既带滚动条又带黑色边框的列表框等等,因此经常需要对该构件库进行扩展以增强其功能。现使用装饰模式来设计该图形界面构件库。第11页/共24页装饰模式的应用实例实例类图图形界面构件库结构图第12页/共24页装饰模式的应用实例实例代码(1)VisualComponent:抽象界面构件类,充当抽象构件类(2)Window:窗体类,充当具体构件类(3)TextBox:文本框类,充当具体构件类(4)ListBox:列表框类,充当具体构件类(5)ComponentDecorator:构件装饰类,充当抽象装饰类(6)ScrollBarDe
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设计 模式 装饰
限制150内