欢迎光临散文网 会员登陆 & 注册

Sunny软件公司所开发CRM系统包含很多业务操作窗口,在这些窗口中,某些界面控件之间存

2023-03-20 08:07 作者:酸奶公园  | 我要投稿

Sunny软件公司所开发CRM系统包含很多业务操作窗口,在这些窗口中,某些界面控件之间存在复杂的交互关系,一个控件事件的触发将导致多个其他界面控件产生响应,例如,当一个按钮(Button)被单击时,对应的列表框(List)、组合框(ComboBox)、文本框(TextBox)、文本标签(Label)等都将发生改变

为了实现这种复杂交互关系,Sunny软件公司可以采用观察者模式。在该模式中,一个被观察的对象,即一个按钮,将其事件注册到多个观察者对象中,即列表框、组合框、文本框、文本标签等。当该按钮被单击时,会通知所有观察者对象进行相应的操作,例如改变列表框的内容、更新组合框选项、修改文本框的值等。这样一来,界面控件之间的交互就被很好地解耦,可以更加灵活地扩展和维护系统。同时,该模式也符合“开闭原则”,即对扩展开放,对修改关闭。因为如果需要新增或修改控件之间的交互关系,只需添加或修改相应的观察者对象即可,无需修改被观察者对象。

在本练习中,可以通过引入一个专门用于控制界面控件交互的中间类(Mediator)来降低界面控件之间的耦合度。引入中间类之后,界面控件之间不再发生直接引用,而是将请求先转发给中间类,再由中间类来完成对其他控件的调用。当需要增加或删除新的控件时,只需修改中间类即可,无须修改新增控件或已有控件的源代码


优点:

1. 降低界面控件之间的耦合度,提高系统的灵活性和可维护性;

2. 符合“开闭原则”,对扩展开放,对修改关闭;

3. 可以实现控件之间复杂的交互关系,提高用户体验。


缺点:

1. 需要引入中间类,增加了系统的复杂度;

2. 如果中间类设计不当,可能会成为系统的瓶颈。


适用场景:

1. 界面控件之间需要复杂交互的场景;

2. 界面控件之间的交互关系需要扩展或维护的场景;

3. 界面控件之间的交互关系不应该直接耦合的场景。


Sunny软件公司所开发CRM系统包含很多业务操作窗口,在这些窗口中,某些界面控件之间存的评论 (共 条)

分享到微博请遵守国家法律