0

为什么我们使用简单的工厂模式,而我们可以将创建子类的责任委托给超类?

4

1 回答 1

2

通常,您的子类知道超类,但您的超类对子类一无所知。这样做的原因是为了避免超类依赖于子类。更少的依赖使代码重用变得更容易。

有时,打破该规则并让您的超类知道子类并创建它们的实例会很方便,但在其他情况下这是不可能的。例如,当您为第三方库创建扩展时,您无法编辑库中的超类,您必须扩展它。这是一个很好的设计,因为它可以防止他们的库依赖于您的扩展。在较小的项目中,它可能不那么重要,但在较大的项目中,避免不必要的依赖关系可以重用一段代码,而不会拖入一堆不需要的类。

于 2013-02-08T16:30:54.097 回答