设计模式 - 适配器模式与装饰器模式? [重复]

问题描述 投票:0回答:2

我一直在阅读有关设计模式的内容,这让我很好奇:

装饰器模式表示包装原始对象并在包装对象中添加附加功能。所以从结构上来说 - 包装器遵循装饰器模式。

适配器模式表示通过创建一个对象的实例并向其添加功能来更改一个对象。这些功能与原始对象的功能不匹配,因此我们必须修改它们,但我们也可以添加自己的额外方法,这些方法不属于原始对象的一部分。

在这方面,Adapter 和 Decorator 设计模式有什么区别?

design-patterns
2个回答
30
投票

Decorator,动态地将额外的职责附加到对象上。例如在咖啡中加糖。

Adapter,将现有类的接口适配到另一个接口。例如电源适配器。


29
投票

来自此答案:代理、装饰器、适配器和桥接模式有何不同?

装饰器也称为“智能代理”。当您想要向对象添加功能而不是扩展该对象的类型时,可以使用此方法。这允许您在运行时执行此操作。

当您有一个抽象接口,并且您想将该接口映射到另一个具有类似功能角色但接口不同的对象时,请使用适配器。

主要区别是:

装饰器用于在运行时装饰单个对象。适配器用于向类添加功能,从而向其所有对象添加功能。

© www.soinside.com 2019 - 2024. All rights reserved.