依赖注入(控制反转IoC)
# 依赖注入(控制反转IoC)
Owner: -QVQ-
属于工厂模式和控制反转的一种实现方式
几种实现方式:
- 构造器注入
- 方法注入,通过对象提供的方法传递依赖对象
setEngine(Engine engine)
- 接口注入,通过实现对象的接口实现
public interface IDataSource{
public string getName(int id);
}
public class DataSourceMysql implements IDataSource{
public string getName(int id){
// 从正常的数据库里中获取数据。
}
}
public class DataSourceDrill implements IDataSource{
public string getName(int id){
// 从故障演练的数据库里中获取数据。
}
}
public class UserBLL{
private IDataSource _database;
public UserBLL(IDataSource database){
_database = database;
}
public void MethodA(int id){
// do something...
var name = _database.getName(id);
// do something...
}
}
//以下是调用的时候
new UserBLL(new DataSourceMysql()).MethodA(id); //处理的是正常数据
new UserBLL(new DataSourceDrill()).MethodA(id); //处理的是演练数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
上次更新: 2025/02/21, 14:57:10