Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 为什么要使用多个工厂类?_Design Patterns_Factory Pattern - Fatal编程技术网

Design patterns 为什么要使用多个工厂类?

Design patterns 为什么要使用多个工厂类?,design-patterns,factory-pattern,Design Patterns,Factory Pattern,工厂方法的目的不是帮助获取动态选择的子类的实例,以便您不会隐式调用它们的构造函数吗?为什么在某些情况下,每个子类都使用多个工厂类?如果我理解正确,对于每个子类,您必须调用相应工厂的方法,因此没有理由在这里使用工厂方法。1)您可能有一个分布式应用程序,不同的开发人员提供自己的工厂类是有意义的 2) 它在使用依赖注入进行测试时非常有用 3) 可以存在多个工厂类,它们实现不同的算法,但提供相同类型的数据对象 经典的NetBeans示例: JEditorPane.registerEditorKitFor

工厂方法的目的不是帮助获取动态选择的子类的实例,以便您不会隐式调用它们的构造函数吗?为什么在某些情况下,每个子类都使用多个工厂类?如果我理解正确,对于每个子类,您必须调用相应工厂的方法,因此没有理由在这里使用工厂方法。

1)您可能有一个分布式应用程序,不同的开发人员提供自己的工厂类是有意义的

2) 它在使用依赖注入进行测试时非常有用

3) 可以存在多个工厂类,它们实现不同的算法,但提供相同类型的数据对象

经典的NetBeans示例:

JEditorPane.registerEditorKitForContentType允许注册工具包 按照mime类型,因为预计将有多个 模块试图注册自己的工具包


1) 结果导致了混乱的代码?2) ,3)与使用一个工厂相同如何使用单个工厂类实现3)相同?有很多开关操作员?只是好奇而已。同一个工厂有不同的方法,有什么问题吗?