装饰模式
2018-02-03 12:21
120 查看
装饰者模式:动态的给一个对象添加一些额外的职责。就增加功能来说,装饰模式比生成子类更灵活!
当系统需要更新内容的时候,可能需要向旧的类中添加新的方法,这些新加的代码通常装饰了原有类的核心职责或行为。再主类中添加新的字段,新的方法和新的逻辑,从而增加了主类的复杂度。而这些新加入的东西仅仅是为了满足一些只在某种特定情况下才会执行的特殊行为的需要。装饰者模式可以将每个需要装饰的功能单独的放在一个类中,并让这个类包装它所需要装饰的对象。当需要执行特殊行为时,客户端代码就可以在运行时根据需要有选择地、按顺序地使用装饰功能包装对象
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Decorator { class Program { static void Main(string[] args) { ConcreteComponent c = new ConcreteComponent(); ConcreateDecoratorA d1 = new ConcreateDecoratorA(); ConcreateDecoratorB d2 = new ConcreateDecoratorB(); d1.SetComponent(c); d2.SetComponent(d1); d2.Operation();//concreteComponent中的Operation的事做了。D1中的方法也运行了。D2中的方法也做了! Console.ReadKey(); } } }控制台代码
相关文章推荐
- 关于装饰模式和动态代理模式
- 设计模式---装饰模式
- Java设计模式之装饰模式
- 黑马程序员——JAVA笔记——装饰设计模式
- (三)Java设计模式--装饰器模式
- Python的装饰器模式与面向切面编程详解
- (三)Java设计模式--装饰器模式
- 研磨设计模式 之 装饰模式(Decorator)1
- 【读书笔记】装饰模式代码(C#)
- 装饰模式
- JavaSE_设计模式_装饰模式
- 设计模式(Design Patterns)-可复用面向对象软件的基础 07:装饰模式(Decorator)
- 【ThinkingInJava】43、与动态代理混合的装饰器模式
- java23种设计模式之装饰模式(Decorator)
- 设计模式-装饰模式
- 装饰模式与代理模式的区别
- 设计模式(八)装饰器模式Decorator(结构型)
- 设计模式 - 装饰模式
- 装饰模式
- 《大话设计模式》-- 5.装饰模式