观察者模式向我自己解释

时间:2016-06-05 17:06:48

标签: design-patterns

我还在努力解决观察者模式的问题,所以我试着向自己解释一下,因为我不确定我是对的。所以也许有人可以证实这是一个好方法。 对于我的例子,我想到一辆有4个座位的汽车。当4个座位被取走并且汽车正在行驶时,汽车正在检查是否每个人都系好安全带。 如果没有,你会听到声音。

UML Diagram

所以我想观察一下速度是否超过10,安全带是否系好,以及座椅是否被带走

这是一张好图吗?

1 个答案:

答案 0 :(得分:0)

你的想法很好,但实施有缺陷。

  • 您的事件来源公开了事件启动器,破坏了SRP。
  • 您的所有观察者都使用单个订阅点。 SpeedObserver会收到有关皮带更改的通知,这非常奇怪且无效。考虑从Car公开多个类型化的事件源。