跨进程通信使用MQ,同进程跨多模块(类,或者说跨多业务边界)可使用Event事件驱动思路来解决
C#中委托、事件的好处,只需在某个类中提前定义好公开的委托或事件(委托的特殊表现形式)变量,然后在其它类中就可以很随意的订阅该委托或事件,当委托或事件被触发执行时,会自动通知所有的订阅者进行消费处理。(观察者模式用委托来实现是最好不过了,DDD所提倡的事件驱动其根本理念也是如此),当然我这里想到的是不需要在每个类中进行定义委托或事件,而是由一个统一的中介者(即EventPublishSubscribeUtils)来提供事件的订阅及发布操作,这样各模块之间无需直接依赖,只需通过中介者完成发布通知与订阅回调即可?
1.定义一个事件发布订阅帮助类,EventPublishSubscribeUtils
///
/// 自定义事件发布订阅回调工具类(业务解藕、关注点分离,避免互相依赖)
/// 观察者模式
///
public static class EventPublishSubscribeUtils
{
private static ConcurrentDictionary<Type, EventHandler

浙公网安备 33010602011771号