设计原则:我是如何使用“依赖注入”的

依赖注入的定义

控制反转(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。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值