zoukankan      html  css  js  c++  java
  • 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
        }
  • 相关阅读:
    MIPS笔记
    花生壳动态域名解析工具原理
    SEE MIPS RUN 第六章 内存管理与TLB
    C/C++动态内存创建与内存管理
    ngclass 用法
    看了一个烟花的html作品 引用:http://www.w3cfuns.com/blog54440495404365.html
    ngclip angualr 的copy功能
    学习技术的方法
    restful restAPI 的定义方式
    我与计算机
  • 原文地址:https://www.cnblogs.com/lori/p/2167597.html
Copyright © 2011-2022 走看看