依賴注入和工廠模式的區別。
工廠模式和依賴注入都是設計模式,可用於增強軟體元件之間的松耦合能力。
工廠設計模式用於建立物件。但是,物件的注入和生命週期管理應該由程式設計師在應用程式中處理。無法在一個地方配置所有內容。因此,程式設計師需要在任何需要的地方呼叫物件建立邏輯,這最終會阻礙松耦合能力。
在 DI 設計模式中,物件的建立、例項的注入和例項的生命週期管理可以在程式碼外部處理。在 Spring 中,例項化、注入和生命週期管理由 IOC 容器處理。
| 序號 | 關鍵 | 工廠設計模式 | DI 設計模式 |
|---|---|---|---|
| 1 | 物件建立 | 它用於建立物件。我們有單獨的工廠類包含建立邏輯。 | 它負責物件的建立和注入。 |
| 2 | 物件的狀態 | 它負責建立有狀態物件。 | 它負責建立無狀態物件 |
| 3 | 執行時/編譯時 | 在編譯時建立物件 | 在執行時配置物件 |
| 4 | 程式碼更改 | 如果業務需求發生變化,則可能需要更改物件建立邏輯。 | 不需要程式碼更改 |
| 5 | 機制 | 類依賴於工廠方法,而工廠方法又依賴於具體類 | 父物件和所有依賴物件都可以在一個位置建立 |
工廠模式示例
static class PizzaFactory{
public Pizza buildPizza(String pizzaType){
........
Pizza pizza= //create pizza based on type
return pizza;
}
}
static void Main(){
Pizza pizza = PizzaFactory.buildPizza("Greek style");
}依賴注入示例
public class CustomerExample {
public Address address
public CustomerExample(Address address) {
this.address = address;
}
}
public class Address {
..............
}
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP