dev*_*ium 9 c# java oop dependency-injection
我正在设计一个小项目,我没有对所有类的接口使用编程.我发现有些类几乎不需要改变,所以我让它们被客户端类作为具体类引用.
所以,假设我们已经ClassB消费了以下消费ClassA:

class ClassB {
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,我应该建立ClassB在ClassA,或者我应该传递责任"向上"的层次?我将描述两种情况:
class ClassA {
private ClassB classB;
public ClassA() {
this.classB = new ClassB();
}
}
Run Code Online (Sandbox Code Playgroud)
要么
class ClassA {
private ClassB classB;
public ClassA(ClassB classB) {
this.classB = classB;
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道你将如何做到这一点以及它背后的理由是什么!
谢谢
第一个选项(A 创建 B)的一些优点:
第二个选项的一些优点(A 依赖于 B):
请注意,也可以通过使用有时称为“穷人的依赖注入”来创建“两全其美”的解决方案:
class ClassA {
private ClassB classB;
public ClassA(ClassB classB) {
this.classB = classB;
}
public ClassA() : this(new ClassB()) {
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
843 次 |
| 最近记录: |