zoukankan      html  css  js  c++  java
  • 编程思想—依赖注入(DI)并非实现控制反转(IOC)的最佳方法

    以构造函数注入为例:

    public class TestClass(IClassA a,IClassB b, IClassC C,IClassD d)
    {
      public void Method1()
     {
        //b c d 参数并未使用到,但却通过反射方式创建实例。
        a.Method1("Hello");
        console.WriteLine("Hello Word!");
     }
     ....
    }

    假如我仅需要执行Method1()方法,我必须创建TestClass实例,那必须通过反射方式创建构造函数参数,其实这里我们已经执行了额外的我们并没有真正使用的对象。

    那么既要保持讲对象的创建权限分离,又不产生额外的性能开销。我们可以怎么做到?

    我认为的最佳方法:创建IOC统一调用接口

    public interface IBaseUnityServiceCall<T>
    {
       T GetService();
       T GetSingletonService();
    }

    所有的接口都通过统一接口创建接口实例。不同模块现实接口方式可能有所不同。例如:1.创建接口实例后可能需要对实例进行权限赋Token或者用户名密码等 2.调用实例日志记录 3.自动释放实例(如果需要)

    统一调用接口的优势在于:能够更加清晰的控制接口的依赖关系,并且创建接口实例后可根据不同接口模块统一执行相关逻辑操作。

      

    ASP.NET 方面极力推荐 (美) Stephen Walther 的《ASP.NET 4揭秘》
  • 相关阅读:
    git 命令
    减少死锁的几个常用方法
    JFinal SQL in 查询排序
    并发编程中,如何减少上下文切换
    MySql批量更新
    百度编辑器上传图片自定义路径,访问路径动态加载
    百度编辑器不能插入html标签解决方法
    搭建贴吧自动签到服务
    mpv设置CPU软解
    使用Vercel+Github搭建个人博客
  • 原文地址:https://www.cnblogs.com/Lyunwen/p/5582753.html
Copyright © 2011-2022 走看看