这两天接触到新项目 里面有Ninject的使用,便开始记录一下Ninject
查询了资料
首先需要了解DI(IOC)
IOC 控制反转 全称Inverse Of Control 也就是控制反转了,反转后不再由自己本身的对象进行控制这个内置对象的创建,而是由第三方系统去控制这个内置对象的创建。
DI(依赖注入) 全称Dependency Injection 自身对象中的内置对象是通过注入的方式进行创建。
IOC 一种软件设计思想,DI 软件设计思想的实现
在外界创建一个接口的实现类对象,不需要修改类内部的方法。就是把本来在类内部控制的对象,反转到类外部进行创建后注入,不再由类本身进行控制。
DI 是一个软件设计方面的技术,通过管理依赖组件,提高软件应用程序的可维护性。
定义一个木匠类(Carpenter) 木匠对象有工具Saw对象,木匠有创造椅子MakeChair方法。
MakeChair方法使用Saw对象的Cut方法来制作椅子
DI容器用来解决依赖复杂性问题,在DI容器里决定抽象类需要选择哪一个具体类实例化对象,这个决定依赖于一个映射表---可以用配置文件定义,也可以用代码定义
<bind service="ILogger" to="ConsoleLogger" /> 这是配置文件中配置
Bind<ILogger>().To<ConsoleLogger>(); 这是代码定义