我一直在对装饰器模式进行一些研究,在理解其中一个问题时有点困惑。我一直在读“装饰器通常对组件的客户端是透明的;也就是说,除非客户端依赖于组件的具体类型”。我不确定这意味着什么 - 例如,如果我们有一个 Beverage 类和一个 Coffee 子类,这是否意味着客户端依赖于 Coffee,所以如果它被装饰,会有一些问题吗?
最佳答案
是的。 如果您依赖于实现而不是抽象(抽象类或接口(interface)),那么对于想要在两者之间添加装饰器的人/您来说,这将是一个严重的问题。
请引用Solid Principles的依赖倒置原理.
这是其核心的一般规则:
one should “Depend upon Abstractions. Do not depend upon concretions“
关于java - 装饰模式困惑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30229193/