再问个MVC的问题:引用过期
因为model需要向所有的view通知自己状态的改变,那么肯定有一个地方(或者是model自己,或者是某个管理对象)包含有一个所需要通知的view的列表。
那么,如果有一天,一个view对象被删掉了,model如何知道应当把这个不存在的view从列表中移除?不然不就是越界访问内存了?
这推广到通用的事件模型:事件的发送者可以有一堆的listener,那么它如何知道某些listener已经不存在了?
[解决办法]
有的listener不需要了,是要删掉的...
[解决办法]
第一个问题,和第二个类似;view要么存在,要么不存在,不存在之前是会通知控制器或相关处理模块的.
[解决办法]
Observer模式就是用来解决这个问题的。
[解决办法]
addLisener RemoveLisener update_callback;