Event Broker描述和實例
Event Broker主要是起到系統中對事件的發佈和訂閱作用以解決不同的視圖之間進行協同工作的問題,這樣處理可以達到不同視圖之間的鬆散耦合的效果,增強每個模塊的獨立性。
1. 創建一個Module,並添加對應的三個視圖:
圖2.6.1
2. 利用SCSF實現發佈和訂閱的功能:
圖2.6.2
3. 分別選中ViewLeft2, ViewLeftFrm, ViewMain三個視圖中添加對應的訂閱信息(利用SCSF可自動產生代碼)以及在Presenter類中產生髮布信息,相關代碼如下:
[SmartPart] public partial class ViewLeft2 : UserControl, IViewLeft2 { public ViewLeft2() { InitializeComponent(); } 。。。 [EventSubscription(EventTopicNames.MainEvent, Thread = ThreadOption.UserInterface)] public void OnLeft2EventRec(object sender, EventArgs<string> e) { this.txtRec.Text += e.Data; } 。。。 } |
public class ViewLeft2Presenter : Presenter<IViewLeft2> { [EventPublication(EventTopicNames.Left2Event, PublicationScope.Global)] public event EventHandler<EventArgs<string>> StatusLeft2; 。。。 public void OnStatusLeft2Pub(string text) { if (StatusLeft2 != null) { StatusLeft2(this, new EventArgs<string>(text)); } } 。。。 } |
4. 運行後結果如下:
圖2.6.3