你能给出任何好的解释吗?Proxy and 装饰者?
我看到的主要区别是,当我们假设Proxy uses 作品 and 装饰者 uses 聚合那么似乎很清楚,通过使用多个(一个或多个)装饰器您可以修改/添加功能到预先存在的实例(装饰),而Proxy有自己的代理类的内部实例,并委托它添加一些附加功能(代理行为)。
问题是 - 是否Proxy通过聚合创建的仍然是Proxy更确切地说装饰者?是否允许(根据 GoF 模式中的定义)创建Proxy与聚合?
真正的区别不是所有权(组合与聚合),而是类型信息。
A 装饰者 is always通过了其代表。 AProxy might他自己创造它,或者他might注射它。
But a Proxy always了解受委托者的(更多)具体类型。换句话说,Proxy及其委托者将具有相同的基本类型,但是Proxy指向某种派生类型。 A装饰者指向它自己的基类型。因此,差异在于有关受委托者类型的编译时信息。
在动态语言中,如果被委托者被注入并且恰好具有相同的接口,那么就没有区别。
你的问题的答案是“是”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)