看板 Programming 關於我們 聯絡資訊
想請問一下各位大大 最近看一本書:寫給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
yauhh:意思可能是說,第一種就放個B在中間,B算是個 61.231.65.61 10/20 01:46
yauhh:什麼說不上來.換到下個case,你知道B是對象的 61.231.65.61 10/20 01:47
yauhh:提供者,而C是直接操作對象. 61.231.65.61 10/20 01:47
loveme00835:相依性不一樣, 本來是B 會相依於 C 的140.121.197.115 10/20 18:47
loveme00835:介面, A 會相依於 B 的介面, 如果 B140.121.197.115 10/20 18:48
loveme00835:做的事情就只有簡單的回傳 C 的位址,140.121.197.115 10/20 18:49
loveme00835:那麼就會變成只有 A 相依於 B, C 兩者140.121.197.115 10/20 18:51
loveme00835:B、C 之間的關聯就可以降到最低140.121.197.115 10/20 18:52
loveme00835:Three-tier 的架構上, 層層相依會比較140.121.197.115 10/20 18:55
loveme00835:好設計, 下面的方式反而會讓 A 的責任140.121.197.115 10/20 18:56
loveme00835:變多, 也會破壞了封裝性, 因為要是直140.121.197.115 10/20 18:57
loveme00835:接回傳實作物件的參考給client端, 實140.121.197.115 10/20 18:58
loveme00835:際上 B 就形同虛設了140.121.197.115 10/20 18:58
yauhh:難講,處理C的責任丟給A或丟給B,不都一樣, 211.21.94.199 10/21 14:13
yauhh:你說丟給A破壞封裝,照理丟給B也是破壞封裝. 211.21.94.199 10/21 14:14
loveme00835:封裝是把細節隱藏, 如果 A 本來就是140.121.197.115 10/21 19:25
loveme00835:屬於比較高層次的抽象化實作, 再把底140.121.197.115 10/21 19:25
loveme00835:層的東西提上來, 這樣本來封裝在 B 的140.121.197.115 10/21 19:26
loveme00835:部分就被透露, 這不是單純給誰的問題140.121.197.115 10/21 19:26
loveme00835:每一層有每一層該做的事, 間接多一層140.121.197.115 10/21 19:27
loveme00835:常可以提升複用性, 跟抽象化140.121.197.115 10/21 19:27
cgcheng:這個example講得比較像是template pattern 61.229.229.45 10/23 11:49
yauhh:B哪部份被透露?? 218.160.211.50 11/07 11:45