我有點不清楚要在將類中的所有成員私人化並採取公共方法處理突變方面採取多大的想法。原始類型不是問題,它是我不清楚的封裝對象。使對象成員變爲私有的好處是能夠隱藏不適用於正在構建的類的上下文的方法。缺點是你必須提供公共方法來傳遞參數給底層對象(更多的方法,更多的工作)。在其他方面,如果你想讓所有的方法和屬性暴露給底層對象,你能不能公開對象? 以這種方式暴露對象有什麼危險?環保對象應該公開還是私密?
例如,我會發現將矢量或數組列表中的所有內容都暴露出來會很有用。我能想到的唯一缺點是,公共成員可能會通過隱式轉換(或其他影響)來分配類型。是否能夠減少潛在的問題?
只是一個側面說明:我明白,真正的詮釋意味着成員是私人的。
見迪米特法則http://en.wikipedia.org/wiki/Law_of_Demeter,在OOP語言中,您應該儘量減少依賴關係。 這取決於「類」是否真正具有功能,或者實際上是數據結構。如果它只是一個數據結構,那麼getters'n'setter看起來有點過分,特別是如果所有的字段都是不可變的(final)。 – earcam 2011-07-02 19:05:20