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

    一、简介

    1、名称:装饰(Decorator)模式或者包装器(Wrapper)模式

    2、定义:动态的给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。

    二、参与者

    1、Component

    ——定义一个对象接口,可以给这些对象动态地添加职责。

    2、ConcreteComponent

    ——定义一个对象,可以给这个对象添加一些职责。

    3、Decorator

    ——维持一个指向Component对象的指针,并定义一个与Component接口一致的接口。

    三、协作

    Decorator将请求转发给它的Component对象,并有可能在转发请求前后执行一些附加的动作。

    四、总结

    当系统需要新功能的时候,是向旧的类中添加新的代码。这些新的代码通常装饰了原有类的核心职责或主要行为。它们在主类中加入了新的字段,新的方法和新的逻辑,从而增加了主类的复杂度,而这些新加入的东西仅仅是为了满足一些只在某种特定情况下才会执行的特殊行为的需要。而装饰模式却提供了一个非常好的解决方案,它把每个要装饰的功能放在单独的类中,并让这个类包装它所需要的装饰的对象,因此,当需要执行特殊的行为时,客户代码就可以在运行时根据需要有选择地、按顺序地使用装饰公恩给你包装对象。

    参考文档

    百度百科:http://baike.baidu.com/view/2787758.htm

  • 相关阅读:
    https单向证书
    单例模式再学习
    sql经常出现死锁解决办法
    sqlserver结束和监视耗时的sql
    如何保持进步
    es6-学习
    javascript修改div大小遮挡页面渲染问题
    报表功能设计思考-初步尝试-第一次
    导出统计数据-经验积累-深入1
    Java中数据类型转换&基本类型变量和对象型变量
  • 原文地址:https://www.cnblogs.com/dirt2/p/decorator.html
Copyright © 2011-2022 走看看