看板 OOAD 關於我們 聯絡資訊
小弟對於物件導向的封裝研究了一陣子 基本的封裝概念都看得差不多了 如get、set,或是使用private 資料隱藏、透過對外的介面來修改內部值 但總是覺得少了點什麼,沒有很融會貫通 找了很多資料,但都講得很基本 會覺得對封裝沒有完全懂,是看到有一篇文章 指出使用相依性注入會稍微破壞封裝 我的理解是,因為使用建構式時,會有帶入值, 而這個值會改變我設定為私有的成員變數。 而這個改變並不是透過我設定的對外介面來改變的 ,所以破壞了封裝。 我的理解是正確的嗎? 要怎麼樣才算破壞了封裝? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.134.59.89 ※ 文章網址: https://www.ptt.cc/bbs/OOAD/M.1462280085.A.4C6.html
adrianshum : DI破壞封裝沒聽過,倒是getter/setter 才是真的破壞 05/03 23:13
adrianshum : 封裝吧 05/03 23:14
qrtt1 : 請附上你讀到的書的參考資料,跟上下文唄 :P 05/04 00:21
GoalBased : 我是覺得OO是拿來用的,不是拿來當學問的 05/04 00:54
GoalBased : 封裝的概念在OO裡面算是最好理解和感受的了(個人意 05/04 00:55
GoalBased : 見) 你有了知識後有做些東西嗎? 05/04 00:55
GoalBased : google了一下關鍵字"DI 破壞封裝" 05/04 00:57
GoalBased : 看到一篇是說"濫用DI的情況下" 05/04 00:59
GoalBased : 你的理解我會說是對的,多一點補充的話是說,如果 05/04 01:05
GoalBased : 你注入的東西本來就是private是只有該class內部自 05/04 01:05
GoalBased : 己在玩的東西本就不希望開放給外部知道,結果你 05/04 01:06
GoalBased : 今天卻用DI的方式來處理,那當然是破壞封裝了 05/04 01:06