论文部分内容阅读
MVC是一种良好的设计模式,它将应用程序分成三个核心部件:模型、视图、控制器,每个部件处理各自的任务:模型表示数据对象,视图负责数据显示,控制器接受来自视图的用户输入,并根据用户输入操作模型。MVC使程序层次分明,结构清晰,降低了数据表达,数据描述和应用操作的耦合度,使软件系统的重用性,灵活性以及可扩展性大大提高。MVC已经在Web开发中得到了广泛的使用,并出现了许多优秀的、基于MVC的Web开发框架,像Struts,Spring等。
Eclipse RCP是一种全新的客户端应用程序,不仅拥有不同于一般Java应用程序的优秀的界面显示,它的插件机制更是大大增加了应用程序的扩展性:用户只需要下载一个插件,简单的部署到应用系统中,就能为应用程序添加新的功能。如今,Eclipse RCP已经成为了客户端应用程序开发的热点,并出现了许多Eclipse RCP软件,比较著名的有IBM Lotus Workplace,Nomad PIM等。
然而,Eclipse RCP缺少一个指导性的开发框架,目前的Eclipse RCP开发,仍处于比较随意和自由散漫的状态,开发效率比较低下。但是,可以从众多成熟的、基于MVC的Web开发框架中得到启示,本文的主要目标便是设计一个基于MVC的Eclipse RCP开发框架,使程序结构更加清晰合理,并提高应用程序的开发效率。
本文所设计的Eclipse RCP开发框架同样是视图,控制器,模型的三层结构。视图层采用事件驱动,将用户事件分成Light-Weight事件和Heavy-Weight事件两类:Light—Weight事件只影响前台,而Heavy-Weight事件涉及后台逻辑。所有事件/事件处理器由事件代理统一管理。控制器是Heavy-Weight事件处理器,提供两种事件处理模式:同步等待和异步执行。另外,控制器还具有输入验证和信息跟踪的功能。模型层采用服务数据对象SDO作为数据模型。SDO为异构的数据源提供了统一的编程模型。另外,通过SDO的更改摘要机制,应用程序可以知道模型数据的改变,并使用观察者模式通知前台数据显示的视图刷新数据。