QPMail项目用到的设计模式

1、    分发message(或者request)给不同类,以进行处理:类似于MVC架构中的front controler ,首先写个handler类对各种message进行分发,然后用command模式进行相关处理。
        其中使用简单工厂返回一个特定的concrete command,但创建每个concrete command的同时都把不同的concrete command 用hashtable or dictionary 缓存起来,减少加载程序集和使用反射创建concrete command带来的性能消耗。
2、    处理某个message(或者 request)时,如果要经过不知数目的子处理,如何保证message的处理不被动态的、不知数目的子处理强耦合呢?
    解决方案有两种:可以使用observer模式,如event 和 delegate 在asp.net module的应用;还可以使用composit模式,但树的高度为2。

3、    应对报文处理的两个方向上的变化:“报文类型分发”和“报文处理插件”也可以通过bridge模式进行设计。

你可能感兴趣的:(设计模式)