---
# System prepended metadata

title: 依賴注入(Dependency Injection)
tags: [ASP.NET]

---

###### tags: `ASP.NET`
# 依賴注入(Dependency Injection)

主要常見的有三種作法：建構式注入(.Net Core)、方法注入、屬性注入


**-控制反轉 (Inversion of Control, IoC)**
不再是由高階模組去建立並控制低階模組，而是我們讓一個控制反轉中心去建立低階模組，然後高階模組要使用的時候再把這個低階模組交給高階模組使用，因此控制權反轉，高階模組從主動建立低階模組，變成被動接收低階模組
:::info
董事長提出需求後不需要親自出馬，有人(第三方)會找到清潔工並且吩咐事項。
:::
**-依賴反轉原則 (Dependency-Inversion Principle)**
高階模組(呼叫者)不應該依賴於低階模組(被呼叫者)。兩者都應該依賴抽象，
才不會產生高階模組與低階模組有耦合現象，避免隨著層次越高，底下依賴的模組越多，改動的頻率就會提高。
:::info
董事長必須清潔廁所導致沒空進入辦公室
:::
