java - 装饰模式困惑?

标签 java polymorphism decorator

我一直在对装饰器模式进行一些研究,在理解其中一个问题时有点困惑。我一直在读“装饰器通常对组件的客户端是透明的;也就是说,除非客户端依赖于组件的具体类型”。我不确定这意味着什么 - 例如,如果我们有一个 Beverage 类和一个 Coffee 子类,这是否意味着客户端依赖于 Coffee,所以如果它被装饰,会有一些问题吗?

最佳答案

是的。 如果您依赖于实现而不是抽象(抽象类或接口(interface)),那么对于想要在两者之间添加装饰器的人/您来说,这将是一个严重的问题。

请引用Solid Principles的依赖倒置原理.
这是其核心的一般规则:

one should “Depend upon Abstractions. Do not depend upon concretions“

关于java - 装饰模式困惑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30229193/

上一篇:Java唯一值映射

下一篇:Java拆分方法

相关文章:

Java NIO SSL - SSLEngine session 重用

Java 小程序未在浏览器中显示

generics - 斯卡拉: "Parameter type in structural refinement may not refer to an abstract type defined outside that refinement"

javascript - 如何使用类装饰器将装饰器应用于所有类方法

python - 这怎么称呼以及如何完成( `function_name.decorator`)?

java - 找不到主类 :Main, 应用程序将退出

java - 将 Spring Security 与 SiteMinder 集成

java - Java 中多个类的 Varargs 问题

java - 多态排序转换

c# - 遵循 O/C 原则在类层次结构的中间添加一个方法