作者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