说装饰器比适配器更透明是什么意思?

Gee*_*eek 3 design-patterns

我已经读过装饰器对客户端比适配器更透明,正是这种透明性使得嵌套装饰成为可能.在这种情况下,透明度实际上意味着什么?

PS:我知道这两种设计模式.所以你可以根据这个前提来回答你的问题.

JB *_*zet 5

装饰器获取给定类型A的对象,并将其包装到相同类型A的对象中.客户端可以使用装饰对象,就像它使用实际对象一样,因为它们具有相同的类型.

适配器获取给定类型A的对象,并将其包装到另一个类型B的对象中.然后,使用原始类型A的客户端必须适应使用另一种类型B.

也就是说,如果我们使用适配器模式,那恰恰是因为客户端需要类型B的对象,而我们只有A类型的对象.所以我们将它包装到适配器中,使其成为B类型的对象.

这两种模式使用相同的原理(包装),但出于不同的目的.一个装饰器来改变原始对象的行为.用于更改其类型的适配器.