【发布时间】:2019-05-02 05:33:54
【问题描述】:
早上好,
我一直在阅读 Robert Martin 写的关于软件架构和 SOLID 原则的书,但我不明白依赖倒置是如何工作的。
简单的例子,是的,很清楚,比如https://www.oodesign.com/dependency-inversion-principle.html
但是当我们有一个插件系统时,父级必须知道所有插件并加载它们,那么如何避免父级对其插件的依赖呢?
例子:
/*
// In plugins file below
class PluginA { }
class PluginB { }
*/
import { PluginA, PluginB } from '../plugins';
class A {
private plugins: Plugin[] = [];
construct() {
plugins.push(new PluginA(), new PluginB());
}
}
是的,我们为所有插件定义了一个接口,但是我们不能在没有依赖的情况下推送它们,对吧?
那么在这种情况下如何应用依赖倒置原则呢? 如何使用没有依赖的插件?
【问题讨论】:
标签: oop architecture