【发布时间】:2012-09-04 17:48:06
【问题描述】:
假设我正在为硬件配件编写用户界面。该配件有两个版本 - 比如说 Widget Lite 和 Widget Pro。
Widget Pro 可以做 Widget Lite 可以做的所有事情,但有更多选项,可以做一些 Widget Lite 不能做的事情。更详细地说,Widget Lite 有一个通道,Widget Pro 有两个,所以当涉及到类似于音量控制的东西时,Lite 只需要一个控制,而 Pro 需要两个允许独立控制。
在我第一次尝试构建一个应用程序来处理这个问题时,我让代表 Widget Pro 的类扩展了 Widget Lite,但后来我得到了各种条件案例来处理看起来很难看的差异。有谁知道合适的设计模式来帮助解决这种情况?在想出可能对我的搜索有帮助的同义词时,我的想象力是一片空白。
【问题讨论】:
-
LSP 违规在您的示例中至关重要。如果你能找到 Lite 不能只用 Pro 代替的地方,你就不能从 Lite 派生出 Pro。
标签: oop design-patterns