5

像往常一样用不同的设计模式构建项目,架构师总是更喜欢那个特定设计模式的有利视图。但有时需要了解在未来的项目扩展中应该有哪些违规区域和劣势。我现在正在使用抽象工厂设计模式。我理解它,但无法弄清楚它的缺点,它的局限性,它会在哪里失败。有人可以解释一下抽象工厂设计模式的另一种观点吗?

4

1 回答 1

6

首先,对于任何设计模式,您都在添加更多的抽象层和复杂性,因此只有在没有它的痛苦显而易见时才应用该模式。这与 Bob Martin 的“Take the first bullet”和 Nathan Marz 的“ Suffering-Oriented Programming ”类似。

特别是对于抽象工厂,关于使用哪个工厂的决定是在运行时做出的。通常,这是在一些代码中完成的,这些代码专门通过基于一些关键信息的条件分支来提供正确的工厂。这意味着随着更多工厂的创建,必须修改这个中央决策点。这很烦人。

最后,如果对一个工厂的任何底层细节有任何更改,则可能需要为所有工厂修改接口。这会破坏客户。因此,像往常一样,在选择接口时要格外小心。

于 2013-10-22T04:39:44.067 回答