【发布时间】:2011-03-12 19:48:10
【问题描述】:
我正在阅读“清洁代码”一书,并且正在为一个概念而苦苦挣扎。在讨论对象和数据结构时,它声明如下:
- 对象将其数据隐藏在抽象之后,并公开对这些数据进行操作的函数。
- 数据结构暴露了它们的数据并且没有有意义的功能。
所以,我从中得到的是,我的对象不应该有任何公共属性,我应该只拥有对属性执行操作的方法。如果我确实需要访问属性,它们应该位于数据结构上,可以从我的对象上的方法返回?使用这种方法,我似乎需要一个 GetHeight() 和 SetHeight() 方法用于我的对象的 Height 属性,而不仅仅是使用 get 和 set属性。
也许我不完全理解所建议的内容,但这是我对“对象隐藏其数据”的理解。如果您能帮助我理解这一点,我将不胜感激!
提前致谢!
【问题讨论】:
-
补充以下答案,混淆可能源于许多语言不支持属性这一事实。在这种情况下,您可以在访问器方法和公共字段之间进行选择,而正确的选择始终是访问器方法。 C# 没有这个问题,因为它支持属性。
标签: c# data-structures object properties abstraction