首页 理论教育 GUI编程中的数据目标:实现双向中介和自动更新

GUI编程中的数据目标:实现双向中介和自动更新

时间:2023-10-17 理论教育 版权反馈
【摘要】:将数据对象设计成GUI编程人员能够容易地进行这些任务。一个数据目标像双向中介那样在一些应用状态和GUI窗口部件之间运行。当用户使用GUI来改变一个值时,由数据目标监控的应用状态是自动得到更新的。2)此引发文本区域窗口部件发送一个消息到它的目标——数据目标。图6-3 在推状态中,一个使用文本区域窗口部件的数据目标拉状态在一个推状态中,窗口部件询问应用来保持最新。

GUI编程中的数据目标:实现双向中介和自动更新

在一个典型的GUI应用中,用户将试图执行以下操作:

1)在对话框中初始值。

2)显示对话框来允许用户实施变化。

3)从对话框中收集编号。

此外,当对话框显示时,如果某些应用状态得到更新,则用户可能想让对话框更新它的状态。将数据对象设计成GUI编程人员能够容易地进行这些任务。

一个数据目标像双向中介那样在一些应用状态和GUI窗口部件之间运行。可以将多个窗口部件连接到数据目标,但是一个数据目标仅作用于一个应用状态。当用户使用GUI来改变一个值时,由数据目标监控的应用状态是自动得到更新的。反之,当应用状态得到更新时,连接到数据目标的窗口控件得到自动的更新。

如6.5.5节中所描述的那样,窗口部件可以是在一个推状态或者在一个拉状态。

推状态

在推状态中,窗口部件收集并发送用户输入到应用。图6-3描述了一个数据对象如何与一个窗口部件工作,窗口部件在推状态中。顺序如下:

1)用户在文本区域中输入“7”并按<Enter>键。

2)此引发文本区域窗口部件发送一个(ID,SEL_COMMAND)消息到它的目标——数据目标。(www.xing528.com)

3)数据目标通过给发送者(文本区域域窗口部件)发送一个消息来进行响应,该消息要求文本区域中的值来响应。数据目标使用该值来更新它的数据值。

978-7-111-57759-1-Part04-9.jpg

6-3 在推状态中一个使用文本区域窗口部件的数据目标

拉状态

在一个推状态中,窗口部件询问应用来保持最新。图6-4说明了在拉状态中,一个数据对象是如何与一个窗口部件一起工作的。顺序如下:

1)当GUI闲置时,它初始一个GUI更新。

2)GUI更新触发每个窗口部件来发送一个(ID,SEL_UPDATE)消息到它的目标。

978-7-111-57759-1-Part04-10.jpg

6-4 在一个拉状态中使用文本区域窗口部件的数据目标

3)在这种情况中,数据目标通过给发送者(文本区域窗口部件)发送一个消息来响应,该消息告诉发送者设定它的值为数据目标的数据值。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈