标签:
定义:
protected Component component; public void SetDecorator(Component component) { this.component = component; }
public override void Notice() { if (this.component!=null) { this.component.Notice(); } }
也可以把装饰逻辑放到具体的装饰类上:
protected Component component; public void SetDecorator(Component component) { this.component = component; }
把这一段放到具体的装饰者类中。
ConcreteComponent:让Decorator对象为自己添加功能。有时候使用ConcreteComponent的派生类提供核心功能,在这种情况就是用ConcreteComponent替代了Component的功能,而且装饰者是继承于ConcreteComponent的子类。
Component:定义ConcreteComponent和Decorator类要实现的方法,简单来说如果一个类继承于该类就具有装饰或被装饰能力。
Decorator:具有特定装饰功能的类,用来装饰ConcreteComponent类。
关于装饰者模式,推荐阅读:http://www.cnblogs.com/rush/archive/2011/05/08/Decorator_DesignPattern_NETFramework.html
学习设计模式的最大体会就是如果能灵活运用到实际开发中去,说明就掌握了,所以一定要鄞练习,多思考。
标签:
原文地址:http://www.cnblogs.com/langhua/p/4259117.html