如何使用“依赖注入”的
如何使用“依赖注入”的
依赖注入的定义
控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题。 控制反转还有一个名字叫做依赖注入(Dependency Injection)。简称DI。
构造方法注入
代码示例
1 public class Service 2 { 3 private readonly IDependService _dependService; 4 5 public Service(IDependService dependService) 6 { 7 _dependService = dependService; 8 } 9 }
意图:非常强烈的依赖关系,缺少该依赖服务不能正常的履行期职责,运行时不能修改依赖对象(采用 readonly 声明)。
属性注入
代码示例
1 public class Service 2 { 3 private IDependService _dependService; 4 5 public Service() 6 { 7 _dependService = new DefaultDependService(); 8 } 9 10 public IDependService DependService 11 { 12 set 13 { 14 _dependService = value; 15 } 16 } 17 }
意图:拥有默认的依赖关系,运行时可以修改依赖对象。
方法注入
代码示例
1 public class Service 2 { 3 public void Do(IDependService dependService) 4 { 5 // 调用依赖 6 } 7 }
意图:没办法采用上边两种注入的场景,如:需要从数据库持久化回来的领域模型;这种模式的依赖会向上传递(所有的注入方式都会)直到上层采用构造方法注入和属性注入。
备注
感谢IOC,没有IOC,真的很难爱上DI。
框架地址: http://happy.codeplex.com/
博客地址: http://www.cnblogs.com/happyframework/
分类: Design Principle
作者: Leo_wl
出处: http://www.cnblogs.com/Leo_wl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did46206