定義 IOC(Inversion of Control 控制反轉),DIP(Dependency Inverson Principle 依懶倒置)都屬於設計程式時指導原則,並沒有具體的實現。比較常用的五大原則SOLID(SRP單一職責、OCP開閉原則、LSP里氏轉換原則、IOC、DIP) DI(De ...
定義
IOC(Inversion of Control 控制反轉),DIP(Dependency Inverson Principle 依懶倒置)都屬於設計程式時指導原則,並沒有具體的實現。比較常用的五大原則SOLID(SRP單一職責、OCP開閉原則、LSP里氏轉換原則、IOC、DIP)
DI(Dependency Injection 依懶註入)屬於模式,提供了一種具體的處理程式中對應情況的實現
IoC容器 屬於一種框架 例如
我只會autofac,屬於菜鳥,歡迎交流
IoC原則:反轉控制(一般與DIP一起使用)
用代碼演示一下
public class A { public void Task() { var b=new B(); b.DoSomeThing(); } } public class B { public void DoSomeThing() { } }
上面的代碼,
類A創建和管理類B的對象的生命周期。它控制依賴類對象的創建和生命周期。
IoC原則建議反轉控制,意味著將控制內容分離到另一個類。換句話說,將依賴關係創建控制項從A類反轉到另一個類,如下所示。
public class A { public void Task() { var b=Factory.GetB(); b.DoSomeThing(); } } public class B { public void DoSomeThing() { } }
A類不直接創建B類,而是通過一個工廠創建。我們就實現了控制反轉
DIP原則:高級模塊不應該依懶低級模塊,兩者都應該依懶抽象;抽象不應該依懶具體,具體應該依懶抽象