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