设计模式 - 适配器模式与装饰模式?

Nav*_*ani 12 design-patterns

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

Decorator Pattern表示包装原始对象并在包装器对象中添加其他功能.从结构上讲 - Wrappers遵循装饰模式.

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

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

小智 21

装饰器,动态地附加对象的附加职责.例如,在咖啡中加糖.

适配器,将现有类的接口适配到另一个接口.例如电子适配器.

  • 当你刚刚开始时,真实世界的例子很少有帮助. (4认同)

Nav*_*ani 13

从这个答案:代理,装饰,适配器和桥模式有何不同?

Decorator也被称为"智能代理".当您想要向对象添加功能时使用此功能,但不能通过扩展该对象的类型来使用.这允许您在运行时执行此操作.

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

主要区别是:

Decorator用于在运行时装饰单个对象.适配器用于向类添加功能,因此也为其所有对象添加功能.

  • Adapter 确实以类为目标,因此也以它的所有对象为目标。但是,Adapter 的意图不是添加功能,而是将旧功能转换为新界面。 (6认同)