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