《大话设计模式》读书笔记三——装饰者模式

      虽然人家说装饰者模式是一个简单的设计模式,但看第一遍也只看出了一个大概,并没有完全搞懂这个模式。
      我发现自己学习一个东西,第一遍在脑海里基本是模糊或者不知其所然的,但第二第三遍看时,基本都能看出所以然来。所以,自己读书最少需要读两遍才能有所体会的,同时也说明,天赋不够时(很多人看一遍就理解得非常透彻了),努力多付出是可以得到弥补的。

      先来看看装饰模式的定义:
    The Decorator Pattern attaches additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality.

     装饰者模式可以动态地给一个对象增加其他职责。就扩展对象功能来说,装饰者模式比生成子类更为灵活。

     再看看设计模式的结构图:

   


     Component是定义了一个对象接口,可以给这些对象动态地添加职责。ConcreteComponent是定义了一个具体的对象,也可以给这个对象添加职责。Decorator是装饰抽象类,继承了Component,从外类来扩展Component类的功能,但对于Component来说,是无需知道Decorator存在的。ConcreteDecorator就是具体的装饰对象,起到给Component添加职责的功能。

Component(被装饰对象基类)  

       定义对象的接口,可以给这些对象动态增加职责;

ConcreteComponent(具体被装饰对象)

       定义具体的对象,Decorator可以给它增加额外的职责;

Decorator(装饰者抽象类)

        维护一个指向Component实例的引用,并且定义了与Component一致的接口;

ConcreteDecorator(具体装饰者)

     具体的装饰对象,给内部持有的具体被装饰对象增加具体的职责;

   园子里Justin对装饰者模式有很好的解读,需要详细了解的朋友请前往:http://www.cnblogs.com/justinw/archive/2007/06/11/779356.html


 


 

作者:边写边唱

文章出处:http://www.cnblogs.com/zoupeiyang

专注于用自助终端技术实现互联网+,有兴趣朋友欢迎关注   捷思科技

原文地址:https://www.cnblogs.com/zoupeiyang/p/1487168.html