[問題] 破壞封裝 疑惑?

看板OOAD作者 (3O6p)時間8年前 (2016/05/03 20:54), 編輯推噓0(0012)
留言12則, 3人參與, 最新討論串1/1
小弟對於物件導向的封裝研究了一陣子 基本的封裝概念都看得差不多了 如get、set,或是使用private 資料隱藏、透過對外的介面來修改內部值 但總是覺得少了點什麼,沒有很融會貫通 找了很多資料,但都講得很基本 會覺得對封裝沒有完全懂,是看到有一篇文章 指出使用相依性注入會稍微破壞封裝 我的理解是,因為使用建構式時,會有帶入值, 而這個值會改變我設定為私有的成員變數。 而這個改變並不是透過我設定的對外介面來改變的 ,所以破壞了封裝。 我的理解是正確的嗎? 要怎麼樣才算破壞了封裝? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.134.59.89 ※ 文章網址: https://www.ptt.cc/bbs/OOAD/M.1462280085.A.4C6.html

05/03 23:13, , 1F
DI破壞封裝沒聽過,倒是getter/setter 才是真的破壞
05/03 23:13, 1F

05/03 23:14, , 2F
封裝吧
05/03 23:14, 2F

05/04 00:21, , 3F
請附上你讀到的書的參考資料,跟上下文唄 :P
05/04 00:21, 3F

05/04 00:54, , 4F
我是覺得OO是拿來用的,不是拿來當學問的
05/04 00:54, 4F

05/04 00:55, , 5F
封裝的概念在OO裡面算是最好理解和感受的了(個人意
05/04 00:55, 5F

05/04 00:55, , 6F
見) 你有了知識後有做些東西嗎?
05/04 00:55, 6F

05/04 00:57, , 7F
google了一下關鍵字"DI 破壞封裝"
05/04 00:57, 7F

05/04 00:59, , 8F
看到一篇是說"濫用DI的情況下"
05/04 00:59, 8F

05/04 01:05, , 9F
你的理解我會說是對的,多一點補充的話是說,如果
05/04 01:05, 9F

05/04 01:05, , 10F
你注入的東西本來就是private是只有該class內部自
05/04 01:05, 10F

05/04 01:06, , 11F
己在玩的東西本就不希望開放給外部知道,結果你
05/04 01:06, 11F

05/04 01:06, , 12F
今天卻用DI的方式來處理,那當然是破壞封裝了
05/04 01:06, 12F
文章代碼(AID): #1NA9-LJ6 (OOAD)
文章代碼(AID): #1NA9-LJ6 (OOAD)