相关疑难解决方法(0)

具有所有类属性的构造函数或带有setter的默认构造函数?

以下是两种方法:

  • 具有所有类属性的构造函数

优点:我必须输入确切数量的参数类型,所以如果我发出错误,编译器会警告我(顺便说一下,有没有办法防止错误地在参数列表上切换两个Integer的问题?)

缺点:如果我有很多属性,那么实例化行可以变得非常长并且可以跨越两行或更多行

  • setter和默认的空构造函数

优点:我可以清楚地看到我正在设置的内容,所以如果我做错了什么我可以在输入时立即查明它(我不能在切换两个相同类型的变量时出现前一个错误)

缺点:具有大量属性的对象的实例化可能需要多行(不知道这是否真的是一个con),如果我忘记设置属性,编译器就不会说任何内容.

你会做什么以及为什么?你知道任何光模式(考虑到应该在每次实例化7个以上的属性时使用它)吗?我问这个是因为我倾向于不喜欢大型构造函数,我无法快速找出我正在寻找的变量的位置,另一方面我发现"set all properties"容易遗漏一些属性.

请随意在优缺点中论证我的假设,因为它们只是我的想法:)

更新 - 我发现的一个与此相关的问题:构建大的不可变对象,而不使用具有长参数列表的构造函数

java setter constructor

24
推荐指数
3
解决办法
5798
查看次数

构造函数或属性:在分配值时哪一个是更好的选择

当我们应该在赋值时使用构造函数而不是属性,反之亦然.

c# constructor properties

13
推荐指数
2
解决办法
6816
查看次数

标签 统计

constructor ×2

c# ×1

java ×1

properties ×1

setter ×1