设计模式 – 外观,代理,适配器和装饰设计模式之间的区别?

正面,代理,适配器和装饰器设计模式之间有什么区别?

我从来没有读过一个清楚的解释,你是什么?

适配器将给定的类/对象适配到新的接口。在前者的情况下,通常采用多重继承。在后一种情况下,对象由合适的适配器对象包装并传递。我们在这里解决的问题是非兼容接口。

门面更像是一个复杂的功能集的简单网关。你为客户制造一个黑箱,不用担心,使接口更简单。

代理提供与代理类相同的接口,通常自己做一些家务。 (因此,不是制作重对象X的多个副本,而是制作一个轻量级代理P的副本,依次管理X并根据需要翻译您的调用。)您正在解决客户端不必管理重型和/或复杂对象。

装饰器用于给你的对象添加更多的火药(注意术语对象 – 你通常在运行时动态装饰对象)。您不会隐藏/削弱对象的现有接口,而只是在运行时扩展它。

现在你有装饰工具了,你可能想知道为什么强调的单词对象 – 一些语言(像Java)根本不允许虚拟继承(即多重继承为C),允许你完成这个编译时间。

因为我们拖拽了多个继承(和可怕的钻石),你会注意到mixins – 这是有序的线性链接的接口,以解决多重继承的问题。然而,mixin不能很好地混合。我们最终得到的traits – 是的那些无状态的小团体的行为,你看到弹出窗口在模板参数中的C。特征试图以优雅的方式解决行为的组成和分解的问题,而不是为了多重继承或有序链接。

http://stackoverflow.com/questions/3489131/difference-between-the-facade-proxy-adapter-and-decorator-design-patterns

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:设计模式 – 外观,代理,适配器和装饰设计模式之间的区别?