zoukankan      html  css  js  c++  java
  • 设计模式 装饰模式

    装饰模式(Decorator Pattern): 动态的给一个对象增加一些额外的职责,就增加对象功能来说,装饰模式比生成子类实现更为灵活。其别名为包装器(Wrapper),与适配器的别名相同,但他们适用于不同的场合。装饰模式是一种对象结构型模式。

    模式结构:

      Component: 抽象构件

      ConcreteComponent: 具体构件

      Decorator: 抽象装饰类

      ConcreteDecorator: 具体装饰类

    模式动机:

      装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任,换言之,客户端并不会觉得对象在装饰前和装饰后有什么不同。装饰模式可以在不需要创建更多的子类的情况下,将对象的功能加以扩展

    具体实现类图:

                    

    类图解析:

      具体构建Car和抽象装饰类Changer实现了抽象构件Transform接口,Changer拥有抽象构件Transform这个属性(因此可以调用Car的对象) ,Robot、AirPlane继承自Changer。

    装饰器模式使用环境

    • 在不影响其他对象的情况下,以动态的、透明地方式给单个对象添加职责。
    • 动态地给一个对象添加功能,这些功能可以被动态地撤销
  • 相关阅读:
    使用rails Devise
    (转)两年服务器开发的一句话经验集
    新版本,新起点。
    学习《锋利的jQuery》1
    Watir 使用
    一些Web Front的收集
    PHP日期时间函数的高级应用技巧
    如何防止动态加载JavaScript引起的内存泄漏问题
    JavaScript常用函数库详解
    JavaScript加密解密
  • 原文地址:https://www.cnblogs.com/wfswf/p/15620375.html
Copyright © 2011-2022 走看看