🏆 超過70萬名讀者已閱讀本站的內容,共同創造了105萬次總閱讀次數!
Inversion of Control 是區隔 library 與 framework 很重要的一個概念。
Martin Fowler 的文章
http://martinfowler.com/bliki/InversionOfControl.html
http://martinfowler.com/articles/injection.html
以 design pattern 來說,Inversion of Control 真正的精神是 template method. 在 GoF 的 <Design Patterns> 中,template method 主要以繼承來達成。但是如果真正理解的話,用 composition 的方式一樣可以達成 template method.
很多文章會把 Dependency Injection 與 Inversion of Control 擺在一起討論 (如上面 link)。主要是因為雖然兩者用意不同 (Dependency Injection 的目的是解除相依性,Inversion of Control 的目的是製造框架),但常常產出的程式碼會相近,尤其是當 Dependency Injection 被大量使用的時候。
需注意的是,即使是少量的 Dependency Injection, 一樣會伴隨小規模的 Inversion of Control. 所以雖然兩者目的不同,但實為一體之兩面。
我是 Larry,經營 B2B 軟體公司超過 10 年,也持續寫作超過 15 年。
我會持續分享自己對商業、科技與生活的觀察。
如果你喜歡這篇文章,也歡迎追蹤我的社群:
📌 Threads|日常觀察與商業思考
📌 FB|文章與生活分享
📌 IG|旅行、美食短影片





