[心得] 控制反轉 (IoC) 與 依賴注入 (DI)

看板Soft_Job作者 (jason)時間7年前 (2016/11/23 12:07), 7年前編輯推噓37(38116)
留言55則, 40人參與, 最新討論串1/6 (看更多)
各位好: 這是小弟第三篇部落文,是很多人愛談的 IoC/DI,是傳說中學會這個,就能秒 學各框架的重要觀念。 接續前兩篇文的觀念,簡單說明 IoC/DI ,並且把大部分人混淆的觀念: 依賴反 轉 vs 控制反轉 vs 工廠,做個釐清。 才出兩篇文,有很多支持,我很感激,酸酸也比我意想的多,但我是不會玻璃心 碎的,只希望能幫助更多人,並釐清網路上的錯誤資訊... (一堆人說 IoC = DIP,我超 傻眼)。 高手可以略過,文中沒有高深莫測的程式,只有腦殘簡單的容器範例,也沒有酷 炫的語法糖,一切都回歸純樸。 請服用: https://blog.jason.party/3/ioc-di -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.72.242.145 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1479874039.A.344.html

11/23 12:42, , 1F
學習了謝謝
11/23 12:42, 1F
不敢當 ^^" 每個人都有可學之處 :)

11/23 12:42, , 2F
Push
11/23 12:42, 2F

11/23 13:00, , 3F
德瑪西雅!!
11/23 13:00, 3F
三年沒打 lol 了 哈哈哈

11/23 13:01, , 4F
先推再看
11/23 13:01, 4F

11/23 13:45, , 5F
終於等到了!
11/23 13:45, 5F

11/23 13:57, , 6F
出惹
11/23 13:57, 6F

11/23 14:06, , 7F
nice
11/23 14:06, 7F
感謝~ 有建議或批評再麻煩各位了 我需要加強文筆 ~"~ ※ 編輯: Jasonzheng (42.72.242.145), 11/23/2016 15:14:25

11/23 15:30, , 8F
推推
11/23 15:30, 8F

11/23 16:13, , 9F
11/23 16:13, 9F

11/23 17:15, , 10F
自從大拇指跟眼皮常常抽筋後就沒碰遊戲了...(x)
11/23 17:15, 10F

11/23 17:15, , 11F
感謝分享!
11/23 17:15, 11F

11/23 18:32, , 12F
有分享的心情都該推
11/23 18:32, 12F

11/23 19:32, , 13F
11/23 19:32, 13F

11/23 19:48, , 14F
11/23 19:48, 14F

11/23 20:02, , 15F
就在等這個
11/23 20:02, 15F

11/23 20:15, , 16F
推好文
11/23 20:15, 16F

11/23 20:56, , 17F
確定傳統是高階建立低階?現在也不在乎正確性了。
11/23 20:56, 17F

11/23 20:57, , 18F
如果覺得是酸文可以不用改原文或原圖。
11/23 20:57, 18F
傳統是怎樣? 結構化語言是怎樣? 建議你可以看看此篇 http://stg-tud.github.io/sedc/Lecture/ss15/3.4-DIP.pdf 然後大大,您真的很無聊 從 Java 版 遠道而來 真是辛苦了 主管? 嗯嗯 棒

11/23 21:38, , 19F
11/23 21:38, 19F
※ 編輯: Jasonzheng (42.72.242.145), 11/23/2016 21:54:10

11/23 22:02, , 20F
11/23 22:02, 20F

11/23 22:17, , 21F
推,描述得很生動有趣
11/23 22:17, 21F

11/23 22:27, , 22F
先推再看
11/23 22:27, 22F

11/23 22:28, , 23F
第四集咧~敲碗
11/23 22:28, 23F

11/23 23:53, , 24F
11/23 23:53, 24F

11/24 00:16, , 25F
11/24 00:16, 25F

11/24 00:59, , 26F
這是我看過寫最好的 IoC/DI
11/24 00:59, 26F

11/24 01:00, , 27F
必須推
11/24 01:00, 27F

11/24 01:03, , 28F
11/24 01:03, 28F
感謝

11/24 04:43, , 29F
你給的投影片不是傳統模式。
11/24 04:43, 29F
是傳統的依賴關係 談論到實例前,得先釐清此觀念

11/24 04:47, , 30F
另外是我長期在此版發文,是你後進的。
11/24 04:47, 30F
我是無法理解,這有什麼好優越的啦

11/24 06:44, , 31F
推心得 但是我之前玩的時候是看這邊:
11/24 06:44, 31F

11/24 06:49, , 32F
呵呵 不能貼網址 算了 XDD
11/24 06:49, 32F

11/24 07:19, , 33F
:D
11/24 07:19, 33F

11/24 08:56, , 34F
對此系列作者的語文程度不敢恭維,自以為幽默的注
11/24 08:56, 34F

11/24 08:56, , 35F
音文類聲文,難登大雅之堂
11/24 08:56, 35F
謝謝指教! 我覺得您比某p大有建設性多了 :) 但是很抱歉, 我沒有想要打較正式的文章 也沒自認幽默 只想以輕鬆的口吻撰文 抱歉不適合您閱讀

11/24 09:09, , 36F
幫推
11/24 09:09, 36F

11/24 09:13, , 37F
這樣比較好懂
11/24 09:13, 37F

11/24 09:33, , 38F
每個人喜愛不同比起文縐縐的語句,個人偏愛此方式撰寫
11/24 09:33, 38F

11/24 10:19, , 39F
推一個
11/24 10:19, 39F

11/24 10:28, , 40F
推分享。不喜歡的話,自己寫一篇就好啦。有什麼好噓的
11/24 10:28, 40F

11/24 11:00, , 41F
登大雅之堂要幹嘛?
11/24 11:00, 41F
感謝各位 我也認為 登大雅之堂要幹嘛 xd

11/24 11:01, , 42F
眼紅(?
11/24 11:01, 42F

11/24 11:12, , 43F
其實是分享資訊有錯誤是否值得推。
11/24 11:12, 43F
您覺得有誤,就請拿出依據 並非您的自我認知即是一切 我撰文也有大量做功課 並非您所想隨便寫寫 不求甚解

11/24 11:13, , 44F
一般新聞媒體報導內容不實都被罵翻了,標準問題。
11/24 11:13, 44F
比較好奇的是: DI 一詞的原作 Martin 都沒有畫圖了 您竟然可以知道什麼才叫"正確"的圖 我也是感到佩服。 再次強調,有錯誤就拿出依據 不要自己模稜兩可,舉例帶過 這樣也才有進一步討論的必要,感恩。

11/24 11:21, , 45F
問!所以最終決定遊戲的人是container?還是有其他方法
11/24 11:21, 45F

11/24 11:21, , 46F
11/24 11:21, 46F
如果您已經 bind 過 或有任何型別提示 (例如: 某些框架,會做類別名稱判斷,"User"Repository 會自動注入到 "User"Control ler) 符合以上條件的話,是的。 但如果不想使用容器,自己 new Game 再設值給 Computer,當然也行 :) ※ 編輯: Jasonzheng (60.250.236.43), 11/24/2016 12:24:56

11/24 12:21, , 47F
可以問一下 所以實作DI就等於實作IOC了嗎 IOC部分看不
11/24 12:21, 47F

11/24 12:21, , 48F
太懂
11/24 12:21, 48F
DI 是 實做 IoC 的一種方式, 有做好 DI 當然就實做了 IoC ^^ ※ 編輯: Jasonzheng (60.250.236.43), 11/24/2016 12:27:47

11/24 12:45, , 49F
在Java版的編輯文已經說明清楚了,可以去回。
11/24 12:45, 49F

11/24 14:30, , 50F
推~~
11/24 14:30, 50F

11/24 23:04, , 51F
建議再提個composition root
11/24 23:04, 51F

11/25 01:04, , 52F
11/25 01:04, 52F

11/26 13:12, , 53F
11/26 13:12, 53F

11/29 12:07, , 54F
11/29 12:07, 54F

12/05 11:16, , 55F
push
12/05 11:16, 55F
文章代碼(AID): #1ODHNtD4 (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1ODHNtD4 (Soft_Job)