1
1
是的,它很管用,但并不理想。
想象一下你有十五辆车。然后,您需要一个非常长的方法来枚举所有选项并生成正确的汽车。这不仅速度太慢,而且很容易出错,因为您可能很容易遗漏/删除某些内容,并且很难调试。一般来说,长方法的代码味道不好。
这需要您编辑
简而言之,抽象工厂方法只是使代码更易于扩展。 此外,生成依赖于字符串的车辆是一个非常糟糕的主意;如果您使用大写字母或拼写错误怎么办?除此之外,这是相当缓慢的。最好有这样的东西。
这里出错的机会要少得多 该类的任何用户都可以轻松地对其进行扩展。 |
2
0
相比之下,工厂方法在编写通用业务逻辑时非常有用,而无需指定具体受益人 哪些客户将在晚些时候写信。 一个虚构的例子(假设通用税务计算)-
我的所有税收规则实现都是指使用抽象计算器进行操作 数量 特定客户可以将其扩展到日元(没有小数点)或美元/英镑等的计算,甚至可以扩展到根据当地规则在每次操作后四舍五入(例如,到下一个10卢比)的计算器。 同样,USDollarTaxCalculator将用自己的操作规则对其进行扩展(但不能也不需要重新定义税务规则)
在里面 . 客户看起来像
此处需要注意的要点
|
3
0
如果您想阻止开发人员(或您自己)继续:
相反,强制所有车辆都应该是从车辆继承的子车辆,然后将其声明为抽象车辆。
|
4
0
我发现以下链接非常有助于理解为工厂创建抽象类背后的逻辑,以及使用工厂模式本身的逻辑。 https://msdn.microsoft.com/en-us/library/ee817667.aspx
第二段指出,创造者使我们能够创建新工厂,处理产品中或其创建逻辑中可能引入的更改,迫使我们创建新工厂。 |
Vedant · 如何解决python啦啦队长问题?[已关闭] 2 年前 |
cobby · 在战略模式中使用工厂模式? 2 年前 |
Nobody · Java中带while循环的三角形模式 2 年前 |
Eduard Stefanescu · 如何在层之间传输异常? 6 年前 |
D. Schreier sanjeev · 对于目录中的每个类 6 年前 |
Tanvi Jaywant · 如何重载类 6 年前 |