Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 什么是伪装饰设计模式?_Design Patterns - Fatal编程技术网

Design patterns 什么是伪装饰设计模式?

Design patterns 什么是伪装饰设计模式?,design-patterns,Design Patterns,网络上很少提到“伪装饰器”模式。例如: 因此,我们有一个例子,说明如何在Apex中通过运行时的行为扩展sObject功能,而不是通过使用伪装饰器模式进行继承 资料来源: 它有正式的定义吗?它与普通decorator有何不同?在特定情况下,它与默认实现不同,因为decorator和decorator类没有实现公共接口。 这通常是必需的,以便接收实现接口I的类的实例的客户端不关心它是基类或修饰类的实例这一事实 这是装饰器的另一个版本,其中组合优先于继承。 您不能像在装饰器模式中那样依赖多态性和虚拟函

网络上很少提到“伪装饰器”模式。例如:

因此,我们有一个例子,说明如何在Apex中通过运行时的行为扩展sObject功能,而不是通过使用伪装饰器模式进行继承

资料来源:


它有正式的定义吗?它与普通decorator有何不同?

在特定情况下,它与默认实现不同,因为decorator和decorator类没有实现公共接口。
这通常是必需的,以便接收实现接口
I
的类的实例的客户端不关心它是基类或修饰类的实例这一事实

这是装饰器的另一个版本,其中组合优先于继承。
您不能像在装饰器模式中那样依赖多态性和虚拟函数。相反,用户有一个对最外层类的引用,这个引用实际上丰富了最内层类的接口


这就是为什么它被称为伪装饰器。目的大致相同,但实现与原始模式不同。

在特定情况下,它与默认实现不同,因为装饰器和装饰类没有实现公共接口。
这通常是必需的,以便接收实现接口
I
的类的实例的客户端不关心它是基类或修饰类的实例这一事实

这是装饰器的另一个版本,其中组合优先于继承。
您不能像在装饰器模式中那样依赖多态性和虚拟函数。相反,用户有一个对最外层类的引用,这个引用实际上丰富了最内层类的接口

这就是为什么它被称为伪装饰器。目的大致相同,但实现与原始模式不同