Tag: 装饰者

战略模式V / S装饰模式

我刚刚遇到两种模式。 战略模式 装饰 策略模式: – 策略模式提供了几种可用于执行特定操作或任务的algorithm。 装饰模式: – 装饰模式为组件添加了一些function。 事实上,我发现策略模式和装饰模式也可以互换使用。 这里是链接: – 何时和如何战略模式可以应用而不是装饰者模式? Strategy Pattern和Decorator Pattern有什么区别? 什么时候应该使用战略模式,何时应该使用装饰模式? 用同一个例子来解释两者的区别。

在包装函数之前,我可以修补Python装饰器吗?

我有一个装饰器的function,我试图在Python 模拟库的帮助下进行testing。 我想使用mock.patch来replace真正的装饰器,只是调用函数的模拟“旁路”装饰器。 我无法弄清楚的是如何在真正的装饰器封装函数之前应用这个补丁。 我已经尝试了修补程序目标上的一些不同的变体,并重新sorting修补程序和导入语句,但没有成功。 有任何想法吗?

Visual Studio代码中的实验装饰器警告

我有 修饰器的实验性支持是未来版本中可能会发生变化的一项function。 设置'experimentalDecorators'选项`删除这个警告。 即使我在tsconfig.json中的compilerOptions有设置: "emitDecoratorMetadata": true, "experimentalDecorators": true, 奇怪的是,一些使用装饰器的随机类没有显示警告,但在同一个项目中rest。 什么可能导致Visual Studio代码的这种行为

我应该什么时候使用装饰者?

WPF是伟大的,因为有很多方法来实现你的目标。 例如,据我所知,装饰者可以添加一些控件到UI元素,但是我认为通过包含附加元素的自定义控件也可以实现相同的行为。 所以,我的问题是:什么时候我应该更喜欢装饰者更复杂(但我认为更灵活)的自定义控件? 请考虑我广泛使用MVVM模式,我想绑定命令的附加元素。 特别是,我正在devise一个图表devise器应用程序,我想添加连接点到我的形状。 另一个我应该在自定义控件和装饰者之间做出决定的例子是显示一个自动定位以“跟随”该行的标签的行。 谢谢

何时使用装饰模式?

我正在检查我的devise模式,而我在编码中尚未认真使用的一种模式是Decorator模式。 我理解这个模式,但是我想知道的是在现实世界中,时代的一些很好的具体例子,装饰模式是最好的/最优的/优雅的解决scheme。 特定的情况下,需要装饰模式是非常方便的。 谢谢。

IO的装饰模式

我已经在维基百科中读过Decorator模式用于.Net和Java IO类。 有人可以解释如何使用? 和一个可能的例子,它的好处是什么? 在wiki上有一个窗口窗体的例子,但我想知道它是如何发生在IO类。

为什么我会用装饰者的责任链?

我只是阅读责任链模式,我很难想象一个场景,当我更喜欢它的使用,而不是装饰 。 你怎么看? CoR是否有利基用途?

如何实现打印机装饰?

TypeScript 1.5现在有装饰器 。 有人可以提供一个简单的例子,说明实现装饰器的正确方法,并描述可能有效的装饰器签名中的参数是什么意思? declare type ClassDecorator = <TFunction extends Function>(target: TFunction) => TFunction | void; declare type PropertyDecorator = (target: Object, propertyKey: string | symbol) => void; declare type MethodDecorator = <T>(target: Object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<T>) => TypedPropertyDescriptor<T> | void; declare type ParameterDecorator = (target: Function, propertyKey: string | symbol, parameterIndex: […]

在python中获取方法参数名称

鉴于python函数: def aMethod(arg1, arg2): pass 我怎样才能提取参数的数量和名称。 IE浏览器。 考虑到我有一个函数的引用,我想func。[something]返回(“arg1”,“arg2”) 这种使用场景是我有一个装饰器,我希望使用方法参数的顺序,他们出现的实际function作为一个关键。 IE浏览器。 当我调用aMethod(“a”,“b”)时,装饰器将如何显示“a,b”