【发布时间】:2017-09-21 22:25:28
【问题描述】:
我知道如何使用属性来公开字段,有什么好处等等。我想了解的(我已经搜索了很多)是:
是否每个字段都需要始终具有包装属性,即使它不需要公开并且仅用于内部逻辑?
我认为答案是肯定的,因为即使在某些内部逻辑中对其进行了修改,新值仍然需要验证。
如果答案是肯定的,这就是为什么属性具有公共获取和私有设置如此普遍的原因吗?
编辑:感谢您给我的所有答案,但大多数都与我的问题无关,你们中的大多数人都在谈论大而复杂的类,我的简单问题是,我是否应该有一个包装属性对于仅在其类内部使用且不需要公开的字段。
编辑 2:一些答案提出了一些可以接受为否的答案,表明如果不需要逻辑,则不应使用属性
编辑 3:谢谢大家,我重读了大部分 cmets,它开始变得有意义,就像往常一样 :)
【问题讨论】:
-
好吧,您可以选择在每种情况下如何使用字段。如果你有一些不同的内部逻辑来归档你可以避免使用属性并添加一些验证方法,当然,属性是方法,你可以将字段包装到几个属性,但我认为它是多余和不清楚的
-
不,除非您需要在 setter 或 getter 中放入一些逻辑(尽管 getter 不太可能),否则不要将其设为属性。如果班级太大以至于没有人可以跟踪所有内容并且您需要彼此隐藏部分,那么它太大并且做得太多。将其重构为两个或更多易于管理的类。
-
大多数情况下,在处理类内部使用的私有数据或常量时,您希望使用字段,并且如果对字段的访问应该暴露在类。