|
1
2
依赖反转原理(DIP)指出:
但是通过定义创建
如果需要让高级模块依赖于抽象(如附加构造函数所示),则无需添加默认构造函数。这样做只会将依赖关系拖到底层模块。由于最终应用程序和测试都应该使用重载构造函数,因此默认构造函数没有意义,只会导致紧密耦合,从而违反DIP。 这不是理论上的练习。在实际应用中,应该遵循这一原则。一个设计良好的实际应用程序应用了SOLID原理,并使用依赖注入作为实现松耦合和DIP的方法。这将解耦模块,并允许在系统中组成完整的对象图 Composition Root |
|
2
1
为了不打破
第二种构造函数方法不是保护依赖关系的正确方法。它通过创建一个
|
|
3
0
好的,你想打破警报和传感器之间的直接耦合。 您提出的解决方案显示了两个构造函数,一个注入传感器对象(外部创建),另一个直接创建传感器对象。你应该放弃:
一般来说,创建依赖项的最常见选项如下所示。 将创建从属对象:
2) 客户使用 委托方名称 3) 客户使用 抽象工厂
5) 从外部通过DI容器并注入客户机(DI) 这是一个关键点 客户机不控制其从属项的创建方式。这就是“解释”这个词 ". 但是,客户保留了“的控制权” ", " 抽象工厂 ".
|
|
|
simply lemon · python上链表的添加方法 1 年前 |
|
|
Anonymous · 为什么在这个例子中self和类名的用法不同? 1 年前 |
|
|
P N Singh · 在CPP Oops中调用对象而不创建它 1 年前 |
|
|
Muthuraj · 如何创建一个通用工厂来创建某种类型的实例[重复] 1 年前 |
|
|
Andy Votava · 从父类定义调用学生方法 1 年前 |