观察者模式的使用
一、背景
系统有三个模块,分别为:组卷、答题卡、阅卷。其功能描述如下:
1、组卷:选择试题并生成试卷。
2、答题卡:根据试卷生成相应的答题卡。
3、阅卷:对作答并扫描后的答题卡进行网上阅卷。
系统有这样的业务逻辑:当开始阅卷后,相对应的答题卡、试卷都不能再修改和删除。于是,阅卷模块与组卷模块、答题卡模块紧密耦合,阅卷模块开始阅卷后要更新试卷、答题卡的状态。
二、问题本质
模块耦合产生一个明显的问题,那就是阅卷模块变得很复杂,例如:开始阅卷要关注试卷,还要关注答题卡。 如果相关联的模块进一步增多的话,阅卷模块将不堪重负。
三、解决措施
想到的一个解决办法,就是使用观察者模式对模块进行解耦。阅卷模块派发开始阅卷事件,组卷模块、答题卡模块响应此事件,进行自身的业务逻辑处理。