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

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

  • 相关阅读:
    大型网站架构系列:负载均衡详解(1)
    转:构建高并发高可用的电商平台架构实践
    转:RBAC权限控制
    小型电商网站的架构
    中小型电子商务网站架构
    装饰器在类中的实现
    使用MySQLdb操作Mysql数据库
    unicode转中文以及str形态的unicode转中文
    了解Python内存管理机制,让你的程序飞起来
    多线程初级入门学习
  • 原文地址:https://www.cnblogs.com/zoupeiyang/p/1487168.html
Copyright © 2011-2022 走看看