iT邦幫忙

2023 iThome 鐵人賽

DAY 3
1

Inversion of Control

控制反轉到底是什麼,不說還以為在打UNO呢!?他是一種軟體設計的模式,用於管理和組織軟體組件之間的依賴關係。在傳統的程式設計中,組件通常會需要自行創建和管理其所依賴的對象或組件,但在IoC中,這種控制權被反轉,由框架(Spring)或容器來管理和控制組件之間的依賴關係。

定義聽起來很抽象且咬文嚼字是吧?來打個比方,今天我們想要吃飯,從買菜備料煮飯吃飯到善後,食材需你自己去處理,抓來宰來殺來烤來吃掉!!但是今天我們在餐廳裡(IoC),你只需要告訴服務員您的選擇,然後服務員會為你送上食物,最後在幫你清理桌子。不再親手執行所有操作,而是將控制權轉移到服務員(外部實體)。

是不是容易理解的多呢!更可以為程式帶來不少的優點:

  • 鬆散耦合:
    透過IoC,組件之間的依賴關係變得更加鬆散,會使程式更容易理解、維護和修改,因為更容易替換或修改彼此的依賴關係。
  • 可測試性:
    鬆散耦合可以輕鬆地替換依賴關係,可以輕鬆地替換依賴關係就可以更容易實現單元測試和集成測試。
  • 模組化:
    IoC的設計模式會鼓勵將應用程序拆分為獨立的模組或組件,接著會透過IoC容器進行組合。
  • 配置分離:
    IoC容器通常會使用配置文件或注解來管理程式之間依賴關係,代表可以透過修改配置來更改應用程序的行為。

總結,Spring框架提供了IoC容器,藉由依賴注入實現控制反轉,並在Java應用程式中廣泛使用,以改善程式的結構和可維護性!!!

資料來源
https://en.wikipedia.org/wiki/Inversion_of_control
https://www.baeldung.com/inversion-control-and-dependency-injection-in-spring


上一篇
Day 2 : 如何分清Spring、Spring MVC及Spring Boot?
下一篇
Day 4 : 依賴注入?到底是誰注入誰!?
系列文
Spring、Spirng MVC 及 Spring Boot 自主學習旅途!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言