论文部分内容阅读
虚拟仪器是计算机仿真实验[1]的重要组成部分,其研究与设计一直在计算机仿真实验研究中占重要地位。早期的开发中,以实验为单元,将虚拟仪器封装在仿真实验平台中,即虚拟仪器与实验本身是强耦合的。这样的设计能够很好地完成指定实验仪器和实验步骤的实验,但是却无法满足设计性实验的要求,即实验者自己选择仪器,按照自己的设计思想和实验方案完成实验。为了解决这个问题,文献[2]采用动态绑定技术,设计和实现了具有可设计性和开放性功能的虚拟实验系统。近几年来,随着虚拟现实技术在教学活动中的不断推广,对虚拟仪器的仿真要求越来越高。特别是对具有同种仪器内核的仪器,由于生产厂家或型号的不同,其面板往往差别很大,在开发该类虚拟仪器时,就需要能够实现外观界面的灵活更换。文献[3]提出了一种基于UI-Model体系结构的虚拟仪器开发模式。该体系结构通过将与仪器的界面表示及仪器操作相关的部分和与仪器内核算法相关的部分进行分离,将虚拟仪器的开发拆分为两层:界面层(UI)和实现层(Model),在一定程度上降低了UI与Model之间的耦合,实现了代码的复用性。然而,由于UI-Model将仪器的界面表示与操作紧密耦合在一起,这在开发具有不同面板界面的同类仪器时,需要重写整个UI层。同时,UI层与Model层之间的事件传递机制使得二者之间并不是完全分离的,当更换界面修改UI控件时,需要对耦合的Model部分进行修改。MVC2是面向Web应用软件开发的MVC的设计模式。与传统MVC相比,MVC2将Model与View之间的信息传递交由Controller进行负责,从而实现了二者之间的完全解耦[5]。然而对基于图形界面的桌面程序开发,由于存在大量的操作事件交互及消息任务分发,直接采用MVC2的开发模式,Controller层的工作量将急剧上升,不利于开发和维护[6]。本文在UI-Model和MVC2开发模式的基础上,结合二者的优点,提出了一种基于MVC2的扩展模式体系结构。该体系结构通过拆分Controller层,完成稳定代码和易变代码的分离与封装,实现了同类仪器面板界面的灵活更换。