在一个典型的GUI应用中,用户将试图执行以下操作:
1)在对话框中初始值。
2)显示对话框来允许用户实施变化。
3)从对话框中收集编号。
此外,当对话框显示时,如果某些应用状态得到更新,则用户可能想让对话框更新它的状态。将数据对象设计成GUI编程人员能够容易地进行这些任务。
一个数据目标像双向中介那样在一些应用状态和GUI窗口部件之间运行。可以将多个窗口部件连接到数据目标,但是一个数据目标仅作用于一个应用状态。当用户使用GUI来改变一个值时,由数据目标监控的应用状态是自动得到更新的。反之,当应用状态得到更新时,连接到数据目标的窗口控件得到自动的更新。
如6.5.5节中所描述的那样,窗口部件可以是在一个推状态或者在一个拉状态。
推状态
在推状态中,窗口部件收集并发送用户输入到应用。图6-3描述了一个数据对象如何与一个窗口部件工作,窗口部件在推状态中。顺序如下:
1)用户在文本区域中输入“7”并按<Enter>键。
2)此引发文本区域窗口部件发送一个(ID,SEL_COMMAND)消息到它的目标——数据目标。(www.xing528.com)
3)数据目标通过给发送者(文本区域域窗口部件)发送一个消息来进行响应,该消息要求文本区域中的值来响应。数据目标使用该值来更新它的数据值。
图6-3 在推状态中,一个使用文本区域窗口部件的数据目标
拉状态
在一个推状态中,窗口部件询问应用来保持最新。图6-4说明了在拉状态中,一个数据对象是如何与一个窗口部件一起工作的。顺序如下:
1)当GUI闲置时,它初始一个GUI更新。
2)GUI更新触发每个窗口部件来发送一个(ID,SEL_UPDATE)消息到它的目标。
图6-4 在一个拉状态中,使用文本区域窗口部件的数据目标
3)在这种情况中,数据目标通过给发送者(文本区域窗口部件)发送一个消息来响应,该消息告诉发送者设定它的值为数据目标的数据值。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。