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