[問題] 關於物件導向問題

看板Programming作者 (加油)時間13年前 (2010/10/20 00:04), 編輯推噓1(1022)
留言23則, 3人參與, 最新討論串1/1
想請問一下各位大大 最近看一本書:寫給SA的UML/MDA實務手冊 裡面的循序圖有個例子 有三個物件,A call B,B call C 然後C回傳B,B再回傳A 書上寫說可以這樣 A call B,B不callC,反而回傳C的位址給A 讓A自己去call C 書上是寫說下面的寫法可以維持物件的封裝性 但是我想破頭都想不出來,這樣跟物件封裝性有什麼關係 希望各位大大可以指點一下,感恩 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.222.22.161

10/20 01:46, , 1F
意思可能是說,第一種就放個B在中間,B算是個
10/20 01:46, 1F

10/20 01:47, , 2F
什麼說不上來.換到下個case,你知道B是對象的
10/20 01:47, 2F

10/20 01:47, , 3F
提供者,而C是直接操作對象.
10/20 01:47, 3F

10/20 18:47, , 4F
相依性不一樣, 本來是B 會相依於 C 的
10/20 18:47, 4F

10/20 18:48, , 5F
介面, A 會相依於 B 的介面, 如果 B
10/20 18:48, 5F

10/20 18:49, , 6F
做的事情就只有簡單的回傳 C 的位址,
10/20 18:49, 6F

10/20 18:51, , 7F
那麼就會變成只有 A 相依於 B, C 兩者
10/20 18:51, 7F

10/20 18:52, , 8F
B、C 之間的關聯就可以降到最低
10/20 18:52, 8F

10/20 18:55, , 9F
Three-tier 的架構上, 層層相依會比較
10/20 18:55, 9F

10/20 18:56, , 10F
好設計, 下面的方式反而會讓 A 的責任
10/20 18:56, 10F

10/20 18:57, , 11F
變多, 也會破壞了封裝性, 因為要是直
10/20 18:57, 11F

10/20 18:58, , 12F
接回傳實作物件的參考給client端, 實
10/20 18:58, 12F

10/20 18:58, , 13F
際上 B 就形同虛設了
10/20 18:58, 13F

10/21 14:13, , 14F
難講,處理C的責任丟給A或丟給B,不都一樣,
10/21 14:13, 14F

10/21 14:14, , 15F
你說丟給A破壞封裝,照理丟給B也是破壞封裝.
10/21 14:14, 15F

10/21 19:25, , 16F
封裝是把細節隱藏, 如果 A 本來就是
10/21 19:25, 16F

10/21 19:25, , 17F
屬於比較高層次的抽象化實作, 再把底
10/21 19:25, 17F

10/21 19:26, , 18F
層的東西提上來, 這樣本來封裝在 B 的
10/21 19:26, 18F

10/21 19:26, , 19F
部分就被透露, 這不是單純給誰的問題
10/21 19:26, 19F

10/21 19:27, , 20F
每一層有每一層該做的事, 間接多一層
10/21 19:27, 20F

10/21 19:27, , 21F
常可以提升複用性, 跟抽象化
10/21 19:27, 21F

10/23 11:49, , 22F
這個example講得比較像是template pattern
10/23 11:49, 22F

11/07 11:45, , 23F
B哪部份被透露??
11/07 11:45, 23F
文章代碼(AID): #1ClS5yBF (Programming)