为什么没有名为" Visible"?的访问修饰符?

时间:2014-04-24 05:42:33

标签: access-modifiers

在C ++,Java或C#等OO语言中,有publicprivateprotected等访问修饰符。有些语言还有其他修饰符,如internal。所有这些都指定了谁可以访问某个变量或方法。对于变量,此术语 access 表示读取和修改的能力。但访问变量的最常见方案是让其他人公开可见,但保留在类中修改的能力。这是通过使用getter setter等的许多策略实现的。

我的问题是,为什么我们没有最常见场景的访问修饰符,可以命名为visible?然后用它标记的变量可以通过外部类或方法读取。但只能在课堂上进行修改。

1 个答案:

答案 0 :(得分:0)

您的建议会鼓励实施细节如何在班级中公布州的状态。

使用一个间接级别 - 属性 - 允许您将类型的公共API与其实现分开。这可能会带来很大的好处:

  • 您可以在计算值时生成,例如懒洋洋地填充一些数据
  • 您可以更改值的存储方式,例如通过授权到其他类型
  • 您可以重命名实施细节,而无需担心违反来电者

我所有的语言都使得更容易公开只读状态(例如,C#6正在使用只读自动实现的属性),但我不鼓励字段本身成为更明显。