作者autumnk (3O6p)
看板OOAD
标题[问题] 破坏封装 疑惑?
时间Tue May 3 20:54:42 2016
小弟对於物件导向的封装研究了一阵子
基本的封装概念都看得差不多了
如get、set,或是使用private
资料隐藏、透过对外的介面来修改内部值
但总是觉得少了点什麽,没有很融会贯通
找了很多资料,但都讲得很基本
会觉得对封装没有完全懂,是看到有一篇文章
指出使用相依性注入会稍微破坏封装
我的理解是,因为使用建构式时,会有带入值,
而这个值会改变我设定为私有的成员变数。
而这个改变并不是透过我设定的对外介面来改变的
,所以破坏了封装。
我的理解是正确的吗?
要怎麽样才算破坏了封装?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.134.59.89
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/OOAD/M.1462280085.A.4C6.html
1F:→ adrianshum : DI破坏封装没听过,倒是getter/setter 才是真的破坏 05/03 23:13
2F:→ adrianshum : 封装吧 05/03 23:14
3F:→ qrtt1 : 请附上你读到的书的参考资料,跟上下文呗 :P 05/04 00:21
4F:→ GoalBased : 我是觉得OO是拿来用的,不是拿来当学问的 05/04 00:54
5F:→ GoalBased : 封装的概念在OO里面算是最好理解和感受的了(个人意 05/04 00:55
6F:→ GoalBased : 见) 你有了知识後有做些东西吗? 05/04 00:55
7F:→ GoalBased : google了一下关键字"DI 破坏封装" 05/04 00:57
8F:→ GoalBased : 看到一篇是说"滥用DI的情况下" 05/04 00:59
9F:→ GoalBased : 你的理解我会说是对的,多一点补充的话是说,如果 05/04 01:05
10F:→ GoalBased : 你注入的东西本来就是private是只有该class内部自 05/04 01:05
11F:→ GoalBased : 己在玩的东西本就不希望开放给外部知道,结果你 05/04 01:06
12F:→ GoalBased : 今天却用DI的方式来处理,那当然是破坏封装了 05/04 01:06