所以我有这样的场景,学生和课程
学生 A 就读于课程 1、2
学生 B 参加课程 1、2、3
学生 C 就读于课程 2
所以有两种事件:
学生 A 被删除 -> 需要通知两个对象:Course 1 和 Course 2
课程 1 取消 -> 需要通知两个对象:学生 A 和学生 B
我知道如果每个学生只能注册一门课程,观察者模式就可以工作,在这种情况下,我有一个观察者模式中每个课程对象的学生列表。
我想知道我是否应该做一些两种方式的观察者模式(学生保留课程列表,课程也保留学生列表)。那么处理这个问题的好方法是什么?主要关注的是速度/空间权衡(我现在最多能想到的是从 1 个学生到 1 组课程和 1 个课程到 1 组学生的双向哈希/树)。任何指针将不胜感激!