本文主要介紹面向具體類編程帶來的耦合度問題,再使用面向介面編程進行進一步的解耦並將控制權轉移出去,從而介紹IOC的概念並實現基本使用。 ... 1.開發環境 IDEA版本: 2022.1.4 Maven版本:3.8.6 Spring版本:6.0.2 2.案例分析 2.1 自定義Man類 2.2 自定義Company類 2.3 自定義CompanyTest類 2.4 分析圖 3.案例改進 此時Company類和Man類之間的耦合度比較高,若希望雇佣其它類取代Man類則需要修改Company類,這種修改違背了開閉原則,為瞭解決該問題,就可以將雇佣什麼類的工作移交出去。 3.1 自定義Staff介面 3.2 修改Man類 3.3 修改Company類 3.4 修改CompanyTest類 3.5 分析圖 4.IOC概述 4.1 基本概念 此時雇佣什麼類的控制權已經由業務代碼反轉給測試代碼來決定,這種思想就是IOC(Inverse of Control),翻譯過來就是控制反轉,使用IOC不僅可以降低程式的耦合性,還可以管理對象的創建和對象之間的依賴等。 4.2 相關介面 Sping框架提供IOC容器實現有兩種方式: BeanFactory介面主要用於Spring內部使用,在載入配置文件時不會創建對象。 ApplicationContext介面是BeanFactory介面的子介面,主要用於開發人員使用,在載入配置文件時就會創建對象。 ApplicationContext介面的主要實現類: FileSystemXmlApplicationContext類主要用於讀取磁碟路徑的配置文件並創建容器。 ClassPathXmlApplicationContext類主要用於讀取類路徑的配置文件並創建容器。 4.3 案例實現 向pom.xml文件中增加Spring支持。 編寫beans.xml文件。 自定義CompanySpringTest類。 更多精彩和源碼歡迎關註微信公眾號《格子衫007》!