Ninject超轻量级的依赖注入工具

简介:

Ninject可以帮助我们解耦,提高类的内聚度,它的使用非常简单,看下面代码:

首先下载Ninject.dll这个动态链接库文件,可以到DLL大全里下载

 public interface ISay
    {
        void Write(string message);
    }
 
    public class ChinaSay : ISay
    {
        public void Write(string message)
        {
            Console.WriteLine(String.Format("早上,中国人说:{0}", message));
        }
    }
 
    public class USASay : ISay
    {
        public void Write(string message)
        {
            Console.WriteLine(String.Format("早上,美国人说:{0}", message));
        }
    }
 
 
    internal class MyModule : Ninject.Modules.NinjectModule
    {
        public override void Load()
        {
            Bind<ISay>().To<USASay>();
        }
    }

调用也十分方便 :

 IKernel kernel = new StandardKernel(new MyModule());
 
 ISay logger = kernel.Get<ISay>();
 logger.Write("早上好");

 

当然如果不使用Ninject也可以通过其它方法实现依赖注入,比如构架函数,看代码:

 
    /// <summary>
    /// 构架函数的依赖注入
    /// </summary>
    internal class Factory : ISay
    {
        ISay _isay;
        public Factory(ISay isay)
        {
            this._isay = isay;
        }
 
        #region ISay 成员
 
        public void Write(string message)
        {
            this._isay.Write(message);
        }
 
        #endregion
    }
,如需转载请自行联系原博主。
目录
相关文章
|
Java 测试技术 Spring
Spring入门&控制反转(或依赖注入)&AOP的关键概念& 多配置文件&与web集成(二)
Spring入门&控制反转(或依赖注入)&AOP的关键概念& 多配置文件&与web集成
|
5月前
|
Go
Gone支持的依赖注入方式
在Go中,依赖注入通过`gone`标签实现,标记有`gone`的结构体字段在Gone启动时接收依赖。支持值类型、指针类型、接口类型、slice及map类型的注入,但值类型不推荐因拷贝导致独立内存。GonerId用于具名注入,允许可选的GonerId在注册时指定,私有属性也可注入以降低耦合。
|
SQL Java 关系型数据库
Spring入门&控制反转(或依赖注入)&AOP的关键概念& 多配置文件&与web集成(一)
Spring入门&控制反转(或依赖注入)&AOP的关键概念& 多配置文件&与web集成
133 0
BXA
|
设计模式 开发框架 监控
Spring Framework构建优雅简洁的Java应用
Spring Framework是一个开源的Java开发框架,提供了一系列底层的架构和模式帮助Java开发人员简化企业级应用的开发过程。
BXA
660 0
|
XML 前端开发 Java
搭建简易SpringFrame-ioc框架
搭建简易SpringFrame-ioc框架
|
设计模式 Java API
轻量级DI框架Guice使用详解
在日常写一些小工具或者小项目的时候,有依赖管理和依赖注入的需求,但是Spring(Boot)体系作为DI框架过于重量级,于是需要调研一款微型的DI框架。Guice是Google出品的一款轻量级的依赖注入框架,使用它有助于解决项目中的依赖注入问题,提高了可维护性和灵活性。相对于重量级的Spring(Boot)体系,Guice项目只有一个小于1MB的核心模块,如果核心需求是DI(其实Guice也提供了很低层次的AOP实现),那么Guice应该会是一个合适的候选方案。
420 0
轻量级DI框架Guice使用详解
|
XML Java 测试技术
Guice依赖注入(基础版)
本教程主要详细讲解Guice的一些基本注入方式,通过该简单教程让我们可以快速使用Guice进行简单系统化开发,后续我们会更深入讲解更多模块,如果还不了解Guice大家可以先去网上自行了解一下.
|
前端开发 JavaScript 容器
|
JavaScript Java Android开发
Dagger2让你爱不释手-基础依赖注入框架篇
dagger2的大名我想大家都已经很熟了,它是解决Android或java中依赖注入的一个类库(DI类库)。当我看到一些开源的项目在使用dagger2时,我也有种匆匆欲动的感觉,因此就立马想一探它的究竟,到底能给我带来怎样的好处。
2596 0