Red*_*wan 5 design-patterns abstract-factory c#-4.0
像往常一样以不同的设计模式构建项目时,建筑师总是喜欢使用该特定设计模式的有利视图。但是有时需要了解在将来的项目扩展方面应该违反的领域和不利之处。我现在正在使用抽象工厂设计模式。我理解它,但是无法弄清它的缺点,局限性以及失败之处。有人可以向我解释一下抽象工厂设计模式的另一种观点吗?
首先,对于任何设计模式,您都将添加更多的抽象性和复杂性,因此,仅在显而易见的情况下才应用该模式。这与鲍勃·马丁(Bob Martin)的“第一个项目符号”和内森·马尔茨(Nathan Marz)的“ 面向痛苦的编程 ” 类似。
特别是对于Abstract Factory,在运行时就决定要使用哪个工厂。通常,这可以通过一些代码来完成,这些代码专用于通过基于某些关键信息的条件分支来提供正确的工厂。这意味着随着创建更多工厂,必须修改此中心决策点。真烦人
最后,如果一个工厂的任何基础细节有任何更改,则可能需要为所有工厂修改接口。这打断了客户。因此,与往常一样,请谨慎选择接口。