【发布时间】:2021-10-28 00:49:55
【问题描述】:
考虑这个来自 YT 教程视频的 UML 图(观察者模式):
IObservable 依赖于IObserver,因为它的方法采用该类型的参数。 Concrete* 类当然实现了它们各自的接口。 ConcreteObserver 依赖于 ConcreteObservable(而不是 IObservable,请注意),因为它在其构造函数中将其作为参数。
我觉得不对的是ConcreteObservable 需要实现IObservable 的方法,所以它也直接“使用”IObserver。图表上的那些之间不应该有依赖关系吗?
我知道它只是实现 IObservable 的方法,ConcreteObservable 和 IObserver 之间的关系有点间接地由图中的其他箭头显示,但就像我提到的那样,我感觉不对因为它们之间存在 直接依赖关系,并且未在图表中显示。
为了澄清——我不是特别在谈论这个具体的 UML 图——这种方法(带有“缺失”依赖项)似乎是大多数/所有类似类关系的 UML 图中的规范。这是为什么呢?
【问题讨论】:
标签: inheritance interface dependencies uml class-diagram