zoukankan      html  css  js  c++  java
  • 《大话设计模式》读书笔记三——装饰者模式

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

          先来看看装饰模式的定义:
        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

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

  • 相关阅读:
    python的eval、exec函数使用总结
    sorted()&enumerate()
    递归
    作用域
    Python3 os.stat() 方法
    android 电容屏(一):电容屏基本原理篇
    Linux 2.6内核与Linux 3.0 的区别!
    struct device的成员变量bus_id到哪里去了?
    Linux内核中ioremap映射的透彻理解
    Android 通过串口模拟 模拟物理按键
  • 原文地址:https://www.cnblogs.com/zoupeiyang/p/1487168.html
Copyright © 2011-2022 走看看