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

    定义:装饰器设计模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。不改变对象的情况下,动态增加其功能。

    • 需要扩展一个类的功能,或给一个类添加附加的成员。

    • 需要动态地给一个对象增加功能,这些功能可以再次动态的撤销

    • 需要增加由一些基本功能的排列组合二产生的非常大量的功能,从而使继承关系实现变得不现实。

    clip_image002

    装饰器模式中的各个角色:

    • 抽象构件角色:给出抽象接口。规范被附加功能类型。

    • 具体构件角色:被附加功能的具体实现。

    • 装饰角色:持有被附加对象的实例,并实现抽象构件的接口规范(装饰角色实现抽象构件的目的就是为了具体装饰角色之间也可以相互修饰)。

    • 具体装饰角色:扩展具体构件的功能

    客户端可以显式扩展具体构件的功能,由于装饰器继承了抽象构件的,所以装饰器之间可以相互修饰,任意组合,从而扩展出具有排列组合性质的组合。

    代码:

    代码

    输出结果:

    clip_image004

  • 相关阅读:
    【转】【python】装饰器的原理
    Common Subsequence---最长公共子序列
    N个数的全排列 -------指定排头法
    Oil Deposits----深搜问题
    Worm
    亲和串
    n个数的最小公倍数
    整除的尾数
    Substrings 子字符串-----搜索
    N的互质数----欧拉函数
  • 原文地址:https://www.cnblogs.com/shitaotao/p/7606193.html
Copyright © 2011-2022 走看看