在一个工厂的构造函数中有太多的params代码味道?

Mar*_*itt 9 java design-patterns

我有一个工厂类,目前在它的构造函数中需要6个参数,我只需要添加另一个.

通常情况下,这会让我感到尖叫:"嘿,你的班级有很多依赖,因此,它做得太多了!"

但是,考虑到这个班级是严格的工厂,那是不是真的如此?我应该关注越来越多的依赖关系吗?如果是这样,我应该考虑采取什么策略进行重构呢?

更新:
我曾考虑过建造者模式,但对于工厂来说,这不是太过分了吗?

(即,WidgetFactoryBuilder构建一个构建小部件的工厂.).

另外,我不明白构建器如何真正减轻我的依赖关系 - 它只是将它们从构造函数移动到方法 - 这似乎使事情变得更加模糊 - 但是这可能归结为对如何应用构建器模式的理解不足在这种情况下.

ilu*_*uxa 11

  • 考虑将您的参数(无论有意义)分组到某种FactoryConfigurationObject中
  • 如果失败,请考虑使用Builder模式
  • 但一般来说,3个以上参数开始闻到......


wax*_*ing 7

首先,我应该提一下,我不一定认为六个参数太多了.但如果你坚持......

我认为问题根本不在于构造函数的参数数量.

其他人推荐的构建器模式对包含大量状态的类很有用.对于工厂来说,这种情况很少发生.我会假设你所讨论的参数是对其他类的依赖.真正的问题是你的工厂有太多的依赖 - 而不是它的构造函数需要太多的参数.

相反,你需要看看设计.为什么工厂有这么多的依赖?有可能以某种方式减少这个数字吗?也许工厂创建的对象本身太复杂了?