以下是两种方法:
- 具有所有类属性的构造函数
优点:我必须输入准确数量的参数类型,所以如果我出错,编译器会警告我(顺便说一句,有没有办法防止在参数列表上错误地切换两个 Integer 的问题?)
缺点:如果我有很多属性,则实例化行可能会变得很长,并且可能跨越两行或多行
- setter 和默认的空构造函数
优点:我可以清楚地看到我在设置什么,所以如果我做错了什么,我可以在输入时立即查明它(我不能犯切换相同类型的两个变量的先前错误)
缺点:具有许多属性的对象的实例化可能需要几行(不知道这是否真的是一个缺点),如果我忘记设置一个属性,编译器不会说任何东西。
你会做什么,为什么?您是否知道建议的任何灯光模式(考虑到每次实例化具有 7 个以上属性的对象时都应该使用它)?我问这个是因为我倾向于不喜欢大型构造函数,因为我无法快速找出我正在寻找的变量在哪里,另一方面,我发现“设置所有属性”容易丢失一些属性。
随意争论我的利弊假设,因为它们只是我的想法:)
更新 - 我发现了一个与此相关的问题:Building big, immutable objects without using constructors have long parameter lists