装饰

作者: helinyu | 来源:发表于2021-09-08 14:02 被阅读0次

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


Component : 是定义一个对象接口口,可以给这些对象动态地添加职责。 ConcreteComponent 定义了一个具体的对象,也可以给这个对象添加一休二职责。 Decorator,装饰抽象类,继承了Component, 从外类来扩展Component类的功能,但对于Component来说,是无需知道Decorator的存在。至于concreteDecorator 就是具体的装饰对象,起到给Component添加职责的功能。

每个装饰对象的实现和如何使用这个对象分离开了,每个装饰对象只关心自己的功能,不需要关心如何被添加到对象链当中的。

装饰模式总结:
1》 装饰模式是为已有功能动态添加更多功能的一种方式。

使用装饰模式的情况:
1》想要在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。当系统需要新功能的时候,是向旧的类中添加新的代码,这些新家的代码通常装饰了原有类的核心职责或主要行为。
2》想扩展一个类的行为,增加了主类的复杂度或者做不到。 类定义可能被隐藏、无法进行子类化;或者对类的每个行为的扩展,为支持每种功能组合,将产生大量的子类。
3》 对类的职责的扩展是可选地的。新加入的东西仅仅是为了满足一些只有在某种特定情况下才会执行的特殊行为的需要。 而装饰模式提供了一个非常好的解决方案,它把每个要装饰的功能放在单独的类中,并让这个类包装它所要装饰的对象,因为当需要执行特殊行为的时候,客户代码可以在云心时候根据需要有选择的、按照顺序的装饰功能包装对象。

优点:
1》把类中的装饰功能从类中搬移去除,这样可以简化原有的类
2》有效的吧类的核心职责和装饰功能区分开了,而且可以去除相关类中重复的装饰逻辑。
3》 不破坏原来的核心逻辑。

iOS上的装饰: 可以通过类的方式,也可以通过范畴的方式。

eg: 常见例子
1》图片滤镜处理
2》。。。。

相关文章

  • 装饰器

    """@装饰器- 普通装饰器- 带参数的装饰器- 通用装饰器- 装饰器装饰类- 内置装饰器- 缓存装饰器- 类实现...

  • typescript 五种装饰器

    装饰器类型 装饰器的类型有:类装饰器、访问器装饰器、属性装饰器、方法装饰器、参数装饰器,但是没有函数装饰器(fun...

  • 二十:Python之多个装饰器装饰

    一:装饰顺序 从离函数最近装饰器开始装饰 二:装饰不带参数的函数 三:装饰固定参数 四:装饰不固定参数 五:通用装饰器

  • python——装饰器详解

    一、装饰器概念 1、装饰器 装饰器:一种返回值也是一个函数的函数,即装饰器。 2、装饰器目的 装饰器的目的:装饰器...

  • python之装饰器模版

    装饰器的作用:装饰器即可以装饰函数也可以装饰类。装饰器的原理:函数也是对象 1.定义装饰器 2.使用装饰器假设de...

  • ES6 系列之我们来聊聊装饰器

    Decorator 装饰器主要用于: 装饰类 装饰方法或属性 装饰类 装饰方法或属性 Babel 安装编译 我们可...

  • Python装饰器

    Python装饰器 一、函数装饰器 1.无参装饰器 示例:日志记录装饰器 2.带参装饰器 示例: 二、类装饰器 示例:

  • 装饰者模式,是谁装饰了谁?

    说到装饰者模式,你想到了什么? 是谁装饰了谁? 谁是被装饰者,谁是装饰者? 它们之间是如何建立装饰关系的? 装饰者...

  • 7

    艺术装饰了宗教 宗教装饰了思想 思想装饰了情感 情感装饰了存在 存在装饰了哲学 哲学装饰了科技 杉沐顿开 2019...

  • Python中的装饰器

    Python中的装饰器 不带参数的装饰器 带参数的装饰器 类装饰器 functools.wraps 使用装饰器极大...

网友评论

    本文标题:装饰

    本文链接:https://www.haomeiwen.com/subject/zbhvwltx.html