1

我正在学习设计模式,我偶然发现了这个PDF

在幻灯片 12 上,它说明了以下 3 条规则:

  1. 任何变量都不应包含对具体类的引用
  2. 任何类都不应派生自具体类
  3. 任何方法都不应覆盖其基类的已实现方法

现在假设我有一个抽象类说“A”。然后,我有 3 个具体的类应该实现这个抽象类,它们是类“B”、“C”、“D”。问题是 D 是 C 的一个特例。 D 只有一个实例变量。

我的问题是,

  • 首先,是保证良好设计的黄金法则之上的 3 条规则吗?
  • 其次,如果“D”扩展“C”并覆盖“C”的方法以添加更多行为,可能会出现什么问题
4

1 回答 1

0

如果您开始在图表中添加子类型,那么抽象当然会被削弱。为什么?因为人们必须学习更多,并且所需内容的足迹会扩大。也就是说,可能有有效的案例,尽管我很难在工厂情况下看到它们。直接针对该下游案例回答您的问题的一种可能性是使用装饰器,因为它或多或少地保留了抽象,但在某些未提供的功能中分层。

于 2013-02-03T15:04:14.190 回答