大家好像對(duì)分析源碼厭倦了,說(shuō)實(shí)在我也會(huì)厭倦,不過(guò)不看是無(wú)法分析其后面的東西,從易到難是一個(gè)必要的過(guò)程。
今天說(shuō)下EventBus,前幾天園里的大神已經(jīng)把其解刨,我今天就借著大神的肩膀,分析下在eShop項(xiàng)目中EventBus的實(shí)現(xiàn)。
最近發(fā)覺(jué)轉(zhuǎn)發(fā)文章不寫出處的,特此加上鏈接: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)
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)論