大家好像對(duì)分析源碼厭倦了,說(shuō)實(shí)在我也會(huì)厭倦,不過(guò)不看是無(wú)法分析其后面的東西,從易到難是一個(gè)必要的過(guò)程。

今天說(shuō)下EventBus,前幾天園里的大神已經(jīng)把其解刨,我今天就借著大神的肩膀,分析下在eShop項(xiàng)目中EventBus的實(shí)現(xiàn)。

最近發(fā)覺(jué)轉(zhuǎn)發(fā)文章不寫(xiě)出處的,特此加上鏈接:http://inday.cnblogs.com

解析源碼

我們知道使用EventBus是為了解除Publisher和Subscriber之間的依賴性,這樣我們的Publisher就不需要知道有多少Subscribers,只需要通過(guò)EventBus進(jìn)行注冊(cè)管理就好了,在eShop項(xiàng)目中,有一個(gè)這樣的接口IEventBus(eShopOnContainers\src\BuildingBlocks\EventBus\EventBus\Abstractions)

電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),平面設(shè)計(jì)培訓(xùn),網(wǎng)頁(yè)設(shè)計(jì)培訓(xùn),美工培訓(xùn),Web培訓(xùn),Web前端開(kāi)發(fā)培訓(xùn)

public interface IEventBus
{    void Subscribe<T, TH>(Func<TH> handler)        where T : IntegrationEvent        where TH : IIntegrationEventHandler<T>;    void Unsubscribe<T, TH>()        where TH : IIntegrationEventHandler<T>        where T : IntegrationEvent;    void Publish(IntegrationEvent @event);
}

網(wǎng)友評(píng)論