包装类在Java中使用的设计模式?

zac*_*ack 15 design-patterns facade decorator adapter wrapper

我找到了一篇旧帖子,但没有说明我对Wrapper Classes使用的设计模式的理解,而且,从维基百科阅读时我没有得到任何明确的信息.

包装类是否真的使用任何设计模式?

如果使用模式,那么其模式是它的这些:Decorator Pattern,Facade PatternAdapter Pattern

use*_*900 10

如果你引用包装原语

包装类提供了一种将基本类型用作对象的方法

适配器模式是最准确的含义:

装饰器可以在运行时添加或更改接口的行为.或者,当包装器必须遵循特定接口并且必须支持多态行为时,可以使用适配器,当需要更简单或更简单的底层对象接口时,可以使用Facade

我们使用Wrapper类能力将原语用作对象,这意味着添加对多态行为的支持


jac*_*646 6

包装类使用组合。与流行格言中的组合相同,“优先考虑组合而不是继承。 ”组合不是一种设计模式;而是一种设计模式。然而,大多数面向对象设计模式都使用组合作为其实现的一部分。这是许多人难以区分不同设计模式的原因之一:构图的共同使用使它们在某种程度上看起来相同。

作曲关系有两个基本部分:作曲者和被作曲者。您通常可以将其视为部分/整体关系。它可以是一对一或一对多。包装是作曲家,即它是整体。它可以包裹一个或多个组成的部分。

许多不同的设计模式利用通用组合关系来达到不同的目的。许多这些不同的模式统称为“包装器”。GoF 书中至少提到了两种这样的模式。

  • ADAPTER Also Known As Wrapper第139页
  • DECORATOR Also Known As Wrapper第 175 页

综上所述,Wrapper不是任何单一的设计模式;相反,它是设计模式的一个类别。顺便说一句,我们在Factory一词上看到了同样的动态。不存在名为 Factory 的单一设计模式;相反,它是设计模式的一个类别。


NiV*_*VeR 5

所有这三种设计模式都描述了一个包装器:

  • 装饰图案.包装组件并可能具有一些额外的特征来装饰它.
  • 适配器模式.简单地包装组件以为消费者提供合适的界面.
  • 门面模式.包装组件以便于使用其他复杂的外部接口.