回複:求教:關於封裝概念的問題。

來源: 小懶熊 2008-05-05 19:56:50 [] [博客] [舊帖] [給我悄悄話] 本文已被閱讀: 次 (877 bytes)
封裝不是意味著與世隔絕,事實上大部分類都需要提供公共接口以便外部使用自己或通信,封裝的本意是盡可能保持外部無關操作的封閉性,但是必要的接口常常是無可避免的。

所以問題的關鍵不是是否使用了public的set或get,而是set是否設計的足夠合理,能夠保持最低限度的數據修改使用,同樣,get能否保持最低限度的接口數據讀取。

比如說:一個窗口類,如果不通過一個方法將用戶所期待的窗口屬性傳遞給窗口類,窗口就無法完成描畫,而當窗口屬性變化時,窗口的當前屬性有必要現行獲取以獲得較高的描畫效率(位置,顏色,風格等是否需要變化)。

是否對set或get進行限製取決於類的設計,如果set或get的數據對象均為類內部的話使用那就定義成protect(繼承類)或private(基類),如果需要與外部交換那就定義成為public如果兩者都有,建議定義成
1.set,get公共,
2.setProtect,getProtect
3.setPrivate,getPrivate
將訪問對象分別放入個自己的訪問範圍所在的方法中。










請您先登陸,再發跟帖!

發現Adblock插件

如要繼續瀏覽
請支持本站 請務必在本站關閉/移除任何Adblock

關閉Adblock後 請點擊

請參考如何關閉Adblock/Adblock plus

安裝Adblock plus用戶請點擊瀏覽器圖標
選擇“Disable on www.wenxuecity.com”

安裝Adblock用戶請點擊圖標
選擇“don't run on pages on this domain”