首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏腾讯IMWeb前端团队

    decorator 学习小结

    decorator 学习小结 1. decorator 是什么 decorator 是装饰者,是 ES7 的语法。 2.3. decorator 也可以是工厂函数 当同一个 decorator 在作用在不同目标上面时,有不同的表现时,可以把 decorator 定义为一个工厂函数,详见下面的例子: function 如何使用 decorator? 既然是 ES7 的新语法,那么如何使用 decorator? 应用 decorator 实际上,decorator 有非常广泛的运用场景,这里我简单举两个例子 4.1. 小结 decorator 是 ES7 的新语法,本质上来说,它就是一个语法糖,但是缺非常有用 任何装饰者模式的代码都可以通过 decorator 来实现 使用了 decorator 之后,代码会变得清晰明了

    34010编辑于 2022-06-29
  • 来自专栏finleyMa

    Decorator 装饰器

    Angular大量使用了JS的装饰器特性,先看 ruanyifeng的介绍 使用babel转换 步骤 : npm install -g babel-cli npm init; npm install --save-dev babel-plugin-transform-decorators-legacy babel --plugins transform-decorators-legacy 1.js > 1.es5.js 例1 @eat class Person { constructor() {} }

    50720发布于 2018-12-25
  • 来自专栏python3

    python decorator

    def benchmark(func): """ A decorator that prints the time a function takes to execute time.clock()-t return res return wrapper def logging(func): """ A decorator args, kwargs return res return wrapper def counter(func): """ A decorator

    49210发布于 2020-01-09
  • 来自专栏InvQ的专栏

    装饰(Decorator)模式

    装饰(Decorator) Intent 为对象动态添加功能。 Class Diagram 装饰者(Decorator)和具体组件(ConcreteComponent)都继承自组件(Component),具体组件的方法实现不需要依赖于其它对象,而装饰者组合了一个组件

    35320编辑于 2022-05-06
  • 来自专栏采云轩

    Decorator 装饰器

    这是第 136 篇不掺水的原创 本文首发于政采云前端团队博客:Decorator 装饰器 https://www.zoo.team/article/decorator 前言 大家在前端开发过程中有遇到过 当我第一次看到的时候,直接懵了,这是什么东东…… 遇到困难解决困难,在我的一番查找后,我知道了,原来这东西叫装饰器,英文名叫 Decorator ,那它到底是干什么的呢? function decorator1() { console.log('decorator1'); return function decFn1(targetClass) { console.log ('decFn1'); return targetClass; }; } function decorator2() { console.log('decorator2'); return field = 0; @decorator fn() { } @decorator get getFn() { } } const targetOne = new TargetClass

    56210编辑于 2022-03-29
  • 来自专栏叽叽西

    结构型-Decorator

    极客时间 https://time.geekbang.org/column/intro/250 装饰器模式 | 菜鸟教程 https://www.runoob.com/design-pattern/decorator-pattern.html

    34910编辑于 2022-05-17
  • 来自专栏JAVA高级架构

    装饰模式(Decorator

    Component:组件对象的接口,可以给这些对象动态地添加职责 ConcreteComponent:具体的组件对象,实现组件接口,通常是被装饰器装饰的原始对象,也就是可以给这个对象添加职责 Decorator //只是一个默认的实现,默认没有奖金 return 0; } }/** * 装饰器的接口,需要跟被装饰的对象实现同样的接口 */public abstract class Decorator */ protected Component c; /** * 通过构造方法传入被装饰的对象 * @param c被装饰的对象 */ public Decorator return money + prize; } }/** * 装饰器对象,计算累计奖金 */public class SumPrizeDecorator extends Decorator d1 = new MonthPrizeDecorator(c1); Decorator d2 = new SumPrizeDecorator(d1); //注意

    57710发布于 2018-07-20
  • 来自专栏从流域到海域

    Python 装饰器(Decorator)

    引入 如果你学过Java的UML设计模式,那么你一定对Decorator Pattern和你熟悉,Decorator Pattern即装饰器模式(也译修饰器模式),是著名的四人帮(Erich Gamma In object-oriented programming, the decorator pattern is a design pattern that allows behavior to be Python 装饰器(Decorator) Python includes a more natural way of decorating a function by using an annotation https://en.wikipedia.org/wiki/Decorator_pattern 译:Python提供了一种更为自然的方式来装饰一个函数,这种方法通过在被装饰的函数前加一个注释来时实现 Python提供了装饰器(Decorator)来更为简便的实现Java的装饰模式(Decorator Pattern),其不需要在类的层面就可以实现对一个函数进行装饰,你可以将装饰理解为添加新的功能。

    89290发布于 2018-02-05
  • 来自专栏行者常至

    装饰器模式(Decorator)

    装饰器模式(Decorator) 对客户透明的方式动态地给一个对象附加上更多的责任,同时又不改变其结构。装饰模式可以在不使用创造更多子类的情况下,将对象的功能加以扩展。 3.装饰(Decorator)角色:持有一个构件(Component)对象的实例,并定义一个与抽象构件接口一致的接口。 InputStream { } /*装饰实现类(FilterInputStream)一定是继承或实现原始接口(InputStream)的,内部有包含一个原始接口的超类(其实就是某个默认目标实现类)*/ //Decorator @Override public float showPrice() { return price; } } // 抽象装饰器 abstract class Decorator float showPrice() { return super.showPrice() + 5; } } // 加牛奶的咖啡 class SugarMilk extends Decorator

    56220发布于 2019-07-01
  • 来自专栏IMWeb前端团队

    decorator 学习小结

    decorator 学习小结 1. decorator 是什么 decorator 是装饰者,是 ES7 的语法。 2.3. decorator 也可以是工厂函数 当同一个 decorator 在作用在不同目标上面时,有不同的表现时,可以把 decorator 定义为一个工厂函数,详见下面的例子: function 如何使用 decorator? 既然是 ES7 的新语法,那么如何使用 decorator? 应用 decorator 实际上,decorator 有非常广泛的运用场景,这里我简单举两个例子 4.1. 小结 decorator 是 ES7 的新语法,本质上来说,它就是一个语法糖,但是缺非常有用 任何装饰者模式的代码都可以通过 decorator 来实现 使用了 decorator 之后,代码会变得清晰明了

    797100发布于 2017-12-29
  • 来自专栏IMWeb前端团队

    decorator 学习小结

    decorator 学习小结 1. decorator 是什么 decorator 是装饰者,是 ES7 的语法。 2.3. decorator 也可以是工厂函数 当同一个 decorator 在作用在不同目标上面时,有不同的表现时,可以把 decorator 定义为一个工厂函数,详见下面的例子: function 如何使用 decorator? 既然是 ES7 的新语法,那么如何使用 decorator? 应用 decorator 实际上,decorator 有非常广泛的运用场景,这里我简单举两个例子 4.1. 小结 decorator 是 ES7 的新语法,本质上来说,它就是一个语法糖,但是缺非常有用 任何装饰者模式的代码都可以通过 decorator 来实现 使用了 decorator 之后,代码会变得清晰明了

    49010发布于 2019-12-04
  • 来自专栏CodeTime

    装饰模式(Decorator)

    基础装饰(Base Decorator)类拥有一个指向被封装对象的引用成员变量。该变量的类型应当被声明为通用部件接口,这样它就可以引用具体的部件和装饰。装饰基类会将所有操作委派给被封装的对象。 abstract class Decorator : Component { protected Component _component; public Decorator _component = component; } // The Decorator delegates all work to the wrapped component. This approach simplifies // extension of decorator classes. ConcreteDecoratorA decorator1 = new ConcreteDecoratorA(simple); ConcreteDecoratorB decorator2

    56020编辑于 2023-03-08
  • 来自专栏技术点滴

    装饰者模式(Decorator

    装饰者模式(Decorator) 装饰者模式(Decorator)[Wrapper] 意图:动态的给一个对象添加一些额外的职责,就增加功能来说,比生成子类更为灵活。 应用:给GUI组件添加功能等。 心得: 装饰器(Decorator)和被装饰的对象(ConcreteComponent)拥有统一的接口,这个统一的接口正是被装饰对象需要扩展功能的地方,因此它们需要一个共同的接口(AbstractComponent public AbstractComponent { public: virtual string operation()     { return "基本对象";     } }; class Decorator :public AbstractComponent { protected:     AbstractComponent*pAbsComponent; public:     Decorator(AbstractComponent :public Decorator { public:     ConcreteDecorator(AbstractComponent*pac):Decorator(pac){} virtual string

    63070发布于 2018-02-05
  • 来自专栏LearnPath

    装饰者模式Decorator

    3、Decorator装饰角色, 一般是一个抽象类,实现接口或者抽象方法,它的属性里必然有一个private变量引用指向Component抽象组件。 换句话说,Component类无须知道Decorator类,Decorator类是从外部来扩展Component类的功能,而Decorator也不用知道具体的组件。  我们看装饰类Decorator,不管装饰多少层,返回的对象还是Component。 return "屠龙刀"; } } 接下来当然是装饰品,宝石了,首先超类(Decorator 所以可以看出ContextWrapper就是“装饰模式”里的Decorator

    85830编辑于 2022-07-20
  • 来自专栏技术开源分享

    装饰器模式(Decorator)

    (3)装饰(Decorator)角色:持有一个构件(Component)对象的实例,并实现一个与抽象构件接口一致的接口。 (4)具体装饰(Concrete Decorator)角色:负责给构件对象添加上附加的责任。 :Phone { private Phone p ; //该装饰对象装饰到的Phone组件实体对象 public Decorator(Phone aps = new Sticker(ap); //准备贴膜组件 aps.Print(); Decorator apa = new Accessories 模式与继承关系的目的都是要扩展对象的功能,但是Decorator可以提供比继承更多的灵活性。

    56720发布于 2018-10-31
  • 来自专栏全栈程序员必看

    Decorator 单一职责模式

    就增加功能而言Decorator模式比生成子类(继承)更为灵活(消除重复代码 & 减少子类个数) 案例 对一个流扩展各种操作 朴素 //业务操作 class Stream{ public: BufferStream(s1); CryptoBufferStream *s4 = new CryptoBufferStream(s1); } 结构 要点总结 通过采用组合而非继承的手法,Decorator 避免了使用继承带来的”灵活性差“和”多子类衍生的问题“ Decorator类在接口表现上为is a Component 的继承关系,即Decorator 类继承了Component类所具有的接口,但在实现上又表现为 即Decorator类又使用了另外一个Component类 Decorator模式的目的并非解决”多子类衍生的多击沉该问题“ 笔记 有大量的重复 有重复就要消除重复 组合 某些情况下优于继承 当一个变量的类型都为某个类的子类的时候直接声明这个基类即可

    37630编辑于 2022-09-22
  • 来自专栏巫山跬步

    Python decorator的那些事

    1.摘要 Python语言中有一个decorator的语法,中文翻译过来为装饰器。首次接触decorator不免让Python 的学习者理解起来有些困难。 本文主要从Python 引入decorator的动机,作用,语法来源以及几个简单的使用例子方面介绍decorator这个概念。 4.Python decorator与设计模式中的decorator 熟悉decorator设计模式的人,乍一看可能会以为Python中的decorator与设计模式Gang of Four中的decorator 5.2 decorator函数的定义 为什么decorator函数要以一个函数作为参数,而且内部还要定义一个函数,最后还要返回一个函数?在我们理解decorator的本质后,这个问题就迎刃而解了。 在最初Python要引入decorator这个语法时候,社区曾经有好几种decorator的语法定义形式。

    68030发布于 2020-01-15
  • 来自专栏全栈前端精选

    Decorator 从原理到实践

    装饰器可能并没有那么重要,因为你只需要加一层 wrapper 就好了,但是现在,由于语法糖 class 的出现,当我们想要去在多个类之间共享或者扩展一些方法的时候,代码会变得错综复杂,难以维护,而这,也正式我们 Decorator 如果一个描述符同时有(value或writable)和(get或set)关键字,将会产生一个异常 更多使用实例和介绍,参看:MDN 装饰者模式 在看Decorator之前,我们先看下装饰者模式的使用,我们都知道 IMAGE Decorator Decorator其实就是一个语法糖,背后其实就是利用es5的Object.defineProperty(target,name,descriptor),了解Object.defineProperty 这篇,为了彻底搞投Decorator,这。。。只是开始。。。 ? const method = decorator.value; console.log(method); decorator.value = (...args) =>

    67540发布于 2019-09-29
  • 来自专栏xingoo, 一个梦想做发明家的程序员

    【设计模式】—— 装饰模式Decorator

    class Decorator implements Component{ private Component component; @Override public void ; component.operation(); System.out.println("after decorator!") ; } public Decorator() { // TODO Auto-generated constructor stub } public Decorator ; 20 component.operation(); 21 System.out.println("after decorator!") ConcreteComponent operation() after decorator!

    67770发布于 2018-01-18
  • 来自专栏python3

    python的装饰器decorator

    在python中编程碰到过这样一件事情,需要给大量的函数做相同的操作,这样每个函数都去实现一遍这个功能显然是浪费时间。 #这是一个装饰器函数 def DecoratorFunc(func):     #Function就是对传入的func函数的包装,以便加入更多的功能     def Function():         printf('hello world')#简单的做一些额外操作,可以是其它操作         return func     return Function 现在有了装饰器函数,如何应用到其它函数上呢,用@来使用,如下: @DecoratorFunc def run():     printf('my run function') 上面的函数就应用了DecoratorFunc这个装饰器的方法,则当我们调用run这个函数的时候,程序的运行是这样的,它先把run这个函数传入DecoratorFunc这个函数里面,然后对其进行简单的工作后返回结果,如果是上面的写法的话,最后输出应该是 hello world my run function 这两句 这里只是简单的例子,装饰器函数可以做的很丰富 如果像上面的run函数有参数的话,则可以用下面的包装函数,多了参数而已 def DecoratorFunc(func):     #*args表示元祖参数,**kargs表示字典参数     def Function(*args,**kargs):         printf('hello world')         return func(*args,**kargs)     return Function

    38820发布于 2020-01-06
领券