中介者模式

13 阅读1分钟

定义一个中介对象来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的交互。

普通模式下,常常会出现好多对象之间存在复杂的直接交互关系,这种交互关系常常是“网状结构”,它要求每个对象都必须知道它需要交互的对象。在现实生活中,比如房产买卖如果没有中介的情况,卖方要与无数的买方联系,买方也与无数卖方联系,通过极为复杂的网状沟通才能获得自己心仪的买(卖)家。

如果把这种“网状结构”改为“星形结构”的话,将大大降低它们之间的“耦合性”,这时只要找一个“中介者”就可以了。单一的买方或卖方都只跟一个中介服务人员联系,中介会帮你甄别联系另外一方。这样将大大降低对象之间的耦合性。

项目中的MediatR就是中介者模式。

「默认情况下」 通知的执行过程不是异步的。Publish 方法调用后,MediatR 会将所有该通知的Handler依次执行完好返回。也就是说如果一个通知的handler执行需要1秒钟,共有3个handler,则这个通知的Publish方法会执行3秒钟。