工厂模式在Python中是否毫无意义?
既然Python是鸭子类型的语言,那么在Python中编写工厂类是否毫无意义?工厂模式在Python中是否毫无意义?,python,factory-pattern,Python,Factory Pattern,既然Python是鸭子类型的语言,那么在Python中编写工厂类是否毫无意义? 虽然有时在其他语言中可能需要工厂模式,但有时工厂模式是不必要的,使用它仍然是有效的-它可能只是一种使API更干净的方法-例如,作为一种防止决定返回一系列子类中的哪一个的代码重复的方法 从您链接的维基百科文章中: 在以下情况下使用factory模式: 对象的创建排除了重用,而不会显著重复代码 创建对象需要访问不适合包含在组成对象中的信息或资源 创建对象的生命周期管理需要集中化,以确保行为一致 当语言为duck类型时
虽然有时在其他语言中可能需要工厂模式,但有时工厂模式是不必要的,使用它仍然是有效的-它可能只是一种使API更干净的方法-例如,作为一种防止决定返回一系列子类中的哪一个的代码重复的方法 从您链接的维基百科文章中: 在以下情况下使用factory模式:
- 对象的创建排除了重用,而不会显著重复代码
- 创建对象需要访问不适合包含在组成对象中的信息或资源
- 创建对象的生命周期管理需要集中化,以确保行为一致
当语言为duck类型时,所有这些仍然适用。它不完全是工厂类,但Python标准库至少有一个工厂方法: 当然,还有一个事实,您可以使用动态创建类
我不会说它们毫无意义,因为Python为您可以创建的工厂提供了大量的可能性。即使编写一个工厂类来创建工厂类作为自身的可调用实例,也相对简单。你说得对。我认为工厂模式只是工厂类的create方法返回的对象类型。显然,在适当的时候使用该模式的原因更多。