• 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
        }
  • 相关阅读:
    python3 与dict相关的魔法方法。使用于二叉搜索树的类中
    笔记:nestjs学习基础(1)
    ES6 --(10)class使用、class继承
    redux --(1)核心概念(stateaction educer)、三大原则、todolist with redux
    antV--G2 学习
    react源代码重点难点分析
    jQuery-ui源代码重点难点分析
    webuploader上传插件源代码重点难点分析
    破解jQuery Deferred()异步执行的神秘世界
    ueditor源代码重点难点分析
  • 原文地址:https://www.cnblogs.com/lori/p/2167597.html
Copyright © 2020-2023  润新知