java如果构造函数中的参数太多,是否存在性能问题?
我知道这不是一个好的设计,如果有选择的话,我宁愿使用setter/getter。但是我正在写一个JPA
实体,并且需要这个构造函数来JPQL
目的,所以简而言之,我必须使用构造函数来初始化字段和嵌入实体的值
因此,我必须在实体的构造函数中生成大约40
个参数,并且必须让JPA非常频繁地使用构造函数。我一直在网上搜索,没有发现任何东西表明java构造函数中的参数列表过大可能会导致性能问题,但可能是我没有做足够的功课
因此,任何建议都是值得赞赏的,性能是唯一的问题。 谢谢
# 1 楼答案
为了简化对象的构造,应该使用Builder模式:
然后可以使用生成器进行构造:
您可以链接这些方法,以返回生成器对象来完成所有这些操作:
# 2 楼答案
如果构造函数中的参数太多,是否存在性能问题这方面没有什么可担心的,这方面没有性能问题
这是因为查询执行本身的开销(一旦到达数据库)加上将查询发送到网络并接收回数据所涉及的网络开销,要比构造函数中太多参数所带来的任何损失高出几个数量级
尝试寻找替代方案的原因是代码的可维护性。您可能会遇到一个具有许多列的高度非规范化的表。这意味着数据库行通常可以被分成几个可嵌入的部分。下面的示例显示了如何将4个相关列分组到一个可嵌入的
Address
类中: