spring解耦原理
- 普通java代碼實現功能
class Zhang{ void doSome(){ Xing xi=new Xing(); Xi.doSome(); XXX x = new XXX(); x.xx(); } } class Xing{ void doSome(){ XXX x = new XXX(); x.XX(); XXX x = new XXX(); x.xx(); } }
普通java實現功能時,每個類中都要new一些對象,也就是所謂的依賴關系,類與類之間直接互相調用,互相依賴,關系錯綜復雜,如下圖。
![圖片來自互聯網][1]
- Spring實現Bean管理
class Person{ @Resource Private XXX xx; @Resource Private YYY yy; @Resource Private ZZZ zz; void doSome(){ xx.xx(); yy.yy(); } } class Chinese{ @Resource Private Person ps; void doSome(){ ps.doSome(); } }
對象在使用的時候不是去new,而是通過IOC容器獲取,對象與對象之間不再有直接聯系,他們通過中間人IOC容器聯系。
-
總結
Spring IOC 容器 通過反射拿到對象的實例,使類的功能更加單一化,減少了類與類的依賴關系,So,降低了耦合