怎麼樣理解依賴注入?
假設你編寫了兩個類,一個是人(Person),一個是手機(Mobile)。
人有時候需要用手機打電話,需要用到手機的dialUp方法。
傳統的寫法是這樣:
Java code
也就是說,類Person的makeCall方法對Mobile類具有依賴,必須手動生成一個新的例項new Mobile()才可以進行之後的工作。
依賴注入的思想是這樣,當一個類(Person)對另一個類(Mobile)有依賴時,不再該類(Person)內部對依賴的類(Moblile)進行例項化,而是之前配置一個beans.xml,告訴容器所依賴的類(Mobile),在例項化該類(Person)時,容器自動注入一個所依賴的類(Mobile)的例項。
介面:
Java code
Person類:
Java code
在xml檔案中配置依賴關係
Java code
這樣,Person類在實現撥打電話的時候,並不知道Mobile類的存在,它只知道呼叫一個介面MobileInterface,而MobileInterface的具體實現是通過Mobile類完成,並在使用時由容器自動注入,這樣大大降低了不同類間相互依賴的關係。
人有時候需要用手機打電話,需要用到手機的dialUp方法。
傳統的寫法是這樣:
Java code
public class Person{ public boolean makeCall(long number){ Mobile mobile=new Mobile(); return mobile.dialUp(number); } }
也就是說,類Person的makeCall方法對Mobile類具有依賴,必須手動生成一個新的例項new Mobile()才可以進行之後的工作。
依賴注入的思想是這樣,當一個類(Person)對另一個類(Mobile)有依賴時,不再該類(Person)內部對依賴的類(Moblile)進行例項化,而是之前配置一個beans.xml,告訴容器所依賴的類(Mobile),在例項化該類(Person)時,容器自動注入一個所依賴的類(Mobile)的例項。
介面:
Java code
public Interface MobileInterface{ public boolean dialUp(long number); }
Person類:
Java code
public class Person{ private MobileInterface mobileInterface; public boolean makeCall(long number){ return this.mobileInterface.dialUp(number); } public void setMobileInterface(MobileInterface mobileInterface){ this.mobileInterface=mobileInterface; } }
在xml檔案中配置依賴關係
Java code
這樣,Person類在實現撥打電話的時候,並不知道Mobile類的存在,它只知道呼叫一個介面MobileInterface,而MobileInterface的具體實現是通過Mobile類完成,並在使用時由容器自動注入,這樣大大降低了不同類間相互依賴的關係。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13270562/viewspace-217879/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 理解 Angular 依賴注入Angular依賴注入
- PHP 依賴注入基礎理解PHP依賴注入
- Spring 依賴注入的理解Spring依賴注入
- 什麼是依賴注入依賴注入
- 前端理解依賴注入(控制反轉)前端依賴注入
- 理解設計模式及依賴注入設計模式依賴注入
- Angular 的依賴注入是怎麼實現的?Angular依賴注入
- 為什麼需要依賴注入依賴注入
- angular依賴注入Angular依賴注入
- XUnit 依賴注入依賴注入
- Struts 依賴注入依賴注入
- java 控制反轉和依賴注入的理解Java依賴注入
- 依賴倒置(DIP)與依賴注入(DI)依賴注入
- 依賴注入?依賴注入是如何實現解耦的?依賴注入解耦
- ASP.NET Core中的依賴注入(2):依賴注入(DI)ASP.NET依賴注入
- 深入理解IoC(控制反轉)、DI(依賴注入)依賴注入
- [譯] 依賴注入?? 哈??依賴注入
- Angular 依賴注入原理Angular依賴注入
- .Net Core — 依賴注入依賴注入
- Spring依賴注入Spring依賴注入
- Spring依賴注入---Spring依賴注入
- 依賴注入系列教程依賴注入
- 我看依賴注入依賴注入
- webapi - 使用依賴注入WebAPI依賴注入
- 依賴注入是否值得?依賴注入
- 深入理解控制反轉(IoC)和依賴注入(DI)依賴注入
- 【Spring】Spring依賴注入與控制反轉理解Spring依賴注入
- Asp .Net Core 依賴注入依賴注入
- Spring IOC——依賴注入Spring依賴注入
- 入門系列-依賴注入依賴注入
- C# 依賴注入 & MEFC#依賴注入
- Spring 依賴注入 DISpring依賴注入
- 關於依賴注入(typescript)依賴注入TypeScript
- .NET8 依賴注入依賴注入
- spring 的依賴注入Spring依賴注入
- 深入淺出依賴注入依賴注入
- C# Unity依賴注入C#Unity依賴注入
- JavaScript裡的依賴注入JavaScript依賴注入