依赖倒置
依赖倒置主要体现的是“不是对具体类的依赖,而是对其抽象类/接口的依赖” ,也可以说自己不去依赖具体实现,而是依赖抽象或接口,并由外部赋予具体实现。
public abstract class 抽象类{}
//低层类
public class 具体类:抽象类{}
//高层类
public class 依赖类
{
//这就是依赖倒置,不使用具体类作为依赖参数
//而是用其抽象类作为依赖参数,这样接受的参数对象就多样化
public 依赖类(抽象类 obj){}
}
public class 应用类
{
public static void Main()
{
抽象类 di=new 具体类(); // new 具体类1() new 具体类2()..., 可以由IOC容器来创建,如 MEF,Autofac,Ninject...
new 依赖类(di); //这样的实例化对象,不受单一性的约束,
//只要是实现抽象类的任何具体类,都可作为参数, 从而实现依赖注入
}
}