0

我一直不太明白这句话的第二部分......

'高级模块不应该依赖于低级模块。两者都应该依赖于抽象(例如,接口) '

如果我改变...

class Upper {
  foo = () => {
    console.log('bar')
  }
}

至...

class Upper {
  foo = () => {
    let lower = new Lower()
    lower.bar()
  }
}

class Lower {
  bar = () => {
    console.log('bar')
  }
}

我们会说我已经成功地反转了依赖关系,因为现在控制台代码无法破坏高级模块(它在包装器中)。

这种情况下的抽象是接口'Lower',但控制台代码不依赖于'Lower',对吗?这取决于什么。这只是“代码”。

我想我真正的问题是在这种情况下究竟是什么表示“依赖”?

4

0 回答 0