【插件式框架探索系列】建立基于委托的订阅发布机制2011-12-20 博客园 Kolor前些时候有个想法,想把自己感觉很有意思且方便平时开发的东西合起来,建立一个Framework,它会让开发变得更得心应手,可惜后来随着更多的东西被加入其中,越来越发觉这可能并不是一个开发者需要的东西,因为它太杂了,是的,作为一个Framework,还是单纯点的好,后来工作也忙了,就停滞了。这几天出差广州,夜来无事,便捡个模块来说道说道。Messenger在平时的开发中,数据的传递、处理等可以通过事件机制来完成,但是事件机制会引入耦合,当然这种耦合很多时候是合理的,但是却有那么一些时候这种耦合却不是你所需要的,过多的依赖会让你感到困惑,而引入Messenger就是为了解除这种依赖,请看下图。

Figure 1. 类之间的单向依赖

Figure 2. 类之间的双向依赖

Figure 3. 引入Messenger后的依赖关系Messenger的概念来自MVVM Foundation项目,在看完该项目的源代码后,发现其中的Messenger是个很好的机制,就借鉴这个机制结合实际情况设计了自己的Messenger。顾名思义,Messenger在这里作为行为的传递者,其职责是预先接受行为的订阅,在需要的时候执行这些行为,即发布。

Figure 4. Messenger类图