代码重构,用Observer模式进行封装时遇到问题疑问。
小弟现在遇到一个问题,FrameWork(框架)在与各个不同的Controller(不同用户交互tab页)进行通信,我用Observer模式进行封装,两者是一对多的关系,每一个Controller是在FrameWork中开始运行时作为dll加载上来,并把Controller的hwnd保存到一个链表里面,这个list(FrameWork中的成员)保存了所有Controller的hwnd,Framework与Controller之间的通信只能通过发消息(因为是不同的dll),现在的问题是:Framework对目标数据的修改如Add,Delete,Modify等等的操作都需要通知每一个Controller,所以每个Controller都需要在OnCommand中对 对应的消息进行相应。这样子的后果是Framework要添加一个消息,每一个Controller就要去做对应的处理分支(添加个case),这样的耦合度太大了,但是我却不知道用什么好的方法可以解耦,望各位指点。