为什么我们可以使用简单的工厂模式,同时我们可以将创建子类的责任委托给超类?
答案 0 :(得分:2)
通常,您的子类知道超类,但您的超类对子类一无所知。这样做的原因是为了避免超类依赖于子类。较少的依赖关系使代码重用更容易。
有时,它会使破坏该规则的方便,并让您的超类知道子类并创建它们的实例,但在其他情况下,它是不可能的。例如,在创建第三方库的扩展时,无法编辑库中的超类,必须对其进行扩展。这是一个很好的设计,因为它可以防止他们的库依赖于您的扩展。在较小的项目上,它可能不那么重要,但是对于较大的项目,避免不必要的依赖可以重用一段代码,而不会拖入一堆不需要的类。