我正在閱讀「清潔代碼」一書,並且正在與一個概念掙扎。在討論對象和數據結構時,它聲明以下內容:清潔代碼:對象是否具有公共屬性?
- 對象將其數據隱藏在抽象背後並暴露對這些數據進行操作的函數。
- 數據結構暴露他們的數據並且沒有有意義的功能。
所以,我從中得到的是,我不應該在我的對象上有任何公共屬性,我應該只有方法執行屬性的操作。如果我確實需要訪問屬性,他們應該在數據結構上,這可以從我的對象上的方法返回?採用這種方法,似乎我需要一個GetHeight()和SetHeight()方法來爲我的對象的Height屬性,而不僅僅是使用得到和集合的屬性。
也許我並不完全瞭解正在建議的內容,但這是我對「對象的理解」。如果你能幫助我理解這一點,我將不勝感激!
在此先感謝!
要添加到使用公用propertiers下面的答案,這種混淆可能源於許多語言不支持屬性的事實。在這種情況下,您可以在訪問方法和公共字段之間進行選擇,正確的選擇始終是訪問方法。 C#沒有這個問題,因爲它支持屬性。 – 2010-07-07 13:40:07