![]() |
1
3
第一个选项(A创建B)的一些优点:
第二个选项的一些优点(A依赖于B):
|
![]() |
2
3
这要看执行情况,没有一般的答案。如果A拥有初始化B的所有相关数据和知识,那么它可以初始化B。 如果你不想让A知道如何初始化B,或者你不想给A初始化的所有数据,那么你应该在外部创建它。 |
![]() |
3
2
请注意,InterfaceB可能是一个常规类,作为派生类的基类。在这种情况下,它仍然作为接口工作。 |
![]() |
4
1
在前者
在后者中,
现在,当然是你的选择了。 |
![]() |
5
0
第二个选项(通过构造器传递对象,即反转控件)的一些优点目前还没有提到:
2) 如果总是在构造函数中传递依赖项(控制反转),那么可以说每个类有哪些依赖项一目了然。 |