我正在阅读“清洁代码”一书,并且正在与一个概念挣扎。在讨论对象和数据结构时,它声明以下内容:清洁代码:对象是否具有公共属性?
- 对象将其数据隐藏在抽象背后并暴露对这些数据进行操作的函数。
- 数据结构暴露他们的数据并且没有有意义的功能。
所以,我从中得到的是,我不应该在我的对象上有任何公共属性,我应该只有方法执行属性的操作。如果我确实需要访问属性,他们应该在数据结构上,这可以从我的对象上的方法返回?采用这种方法,似乎我需要一个GetHeight()和SetHeight()方法来为我的对象的Height属性,而不仅仅是使用得到和集合的属性。
也许我并不完全了解正在建议的内容,但这是我对“对象的理解”。如果你能帮助我理解这一点,我将不胜感激!
在此先感谢!
要添加到使用公用propertiers下面的答案,这种混淆可能源于许多语言不支持属性的事实。在这种情况下,您可以在访问方法和公共字段之间进行选择,正确的选择始终是访问方法。 C#没有这个问题,因为它支持属性。 – 2010-07-07 13:40:07