【发布时间】:2013-01-20 19:10:05
【问题描述】:
我有一个对象,其中构造函数的工作是设置字段,并且在此之后不会设置或更改它们。但是,我需要一个吸气剂。那么,即使我永远不会“以防万一”使用它们,我是否还需要设置器,或者我可以删除它们并只留下 getter,同时将值设置给构造函数?
【问题讨论】:
-
不要编写不需要的代码。你为什么还要呢?这只是浪费时间和更多潜在的错误。
-
我明白了。谢谢你,很抱歉这个愚蠢的问题:)
-
省略二传手的能力几乎是重点。您在需要时限制某些操作(即写入)。这就是封装。
-
默认情况下,你应该努力使你的对象immutable (final fields, no setters)。如果这不可能,那么您可以开始放松该规则。但除非您必须遵守一些外部规范,否则拥有 setter 肯定不是首先要做的事情。
-
另见这个有趣的讨论:stackoverflow.com/questions/3511120/…,特别强调正确性(更容易推断不改变的状态)和线程安全。
标签: java