大家好像對分析源碼厭倦了,說實在我也會厭倦,不過不看是無法分析其后面的東西,從易到難是一個必要的過程。
今天說下EventBus,前幾天園里的大神已經把其解刨,我今天就借著大神的肩膀,分析下在eShop項目中EventBus的實現。
最近發(fā)覺轉發(fā)文章不寫出處的,特此加上鏈接:http://inday.cnblogs.com
解析源碼
我們知道使用EventBus是為了解除Publisher和Subscriber之間的依賴性,這樣我們的Publisher就不需要知道有多少Subscribers,只需要通過EventBus進行注冊管理就好了,在eShop項目中,有一個這樣的接口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); }
延伸閱讀
學習是年輕人改變自己的最好方式