我有一个从CSV文件操作导入产品的类,需要大约7个参数.这是进口商绝对需要的信息.
所有这些参数都具有相同的使用寿命.最后,我们必须有一个不可变对象.
我太害怕在构造函数中列出所有这些因为它对可读性的影响并且决定将其中的3个移动到setter注入.但显然这不是一个优雅的解决方案.
问题:
1)混合基于构造函数和基于setter的注射是不好的做法吗?
2)如何解决这个特殊问题?
我正在考虑应用Martin Fowler的"引入参数对象"重构,但这有一个问题.
4参数可以很容易地移动到Parameter对象(customerId,projectId,languageId等) - 所有整数.
其他3个参数是我注入的对象(模拟单元测试需要它).