这与将组件链接在一起的方式有很大关系.例如,在上面,我希望你将解析器注入需要它的类中.例如
代替:
public class MyParserUsingClass {
...
public MyParserUsingClass() {
this.parser = new Parser();
}
}
Run Code Online (Sandbox Code Playgroud)
你会这样做:
public class MyParserUsingClass {
...
public MyParserUsingClass(Parser injectedParser) {
this.parser = injectedParser;
}
}
Run Code Online (Sandbox Code Playgroud)
为什么这样?使用解析器的类并不真正关心解析器的来源,应该真正使用接口而不是具体的实例.通过注入解析器,您可以根据具体情况提供不同的实例,将其模拟出来进行测试等.否则,类只会在内部创建它而您无法控制它.这对于可配置组件,跨网络通信的组件,重量级组件等尤为关键.
| 归档时间: |
|
| 查看次数: |
745 次 |
| 最近记录: |