【发布时间】:2011-05-07 04:12:00
【问题描述】:
在大多数设计模式概念中,都提到了“Has A”优于“Is A”的意思。
在第一章 - Head First Design Patterns - “Intro to Design Patterns”,“Integrating the Duck Behaviour”部分(第 15 页),Duck 类引用了 FlyBehavior 和 QuackBehavior接口类型。例如,我们要为一种 Ducks 添加一个名为 XYZBehavior 的新行为(假设客户端尚未决定),我们需要更改 Duck 类以引用新接口。因此,我们需要更改类,但根据良好的设计模式,这不应该发生。
你能建议我如何处理这个要求吗?
【问题讨论】:
-
很抱歉添加了来自 Head First Design Patterns 的示例...
-
你能为我们这些没有那本书的人提供一个代码示例吗?
标签: java oop design-patterns inheritance aggregation