了解Eclipse中的JFace数据绑定,第3部分: 使用高级功能 - 编程入门网
清单 1. 受损的启用代码
这个示例中存在很多问题。首先,请注意 YearsMarriedEnablementListener 更像是一个补救措施,而不是应用程序的战略组成部分。第二个问题是此侦听程序中的代码直接引用了 UI 控件。为了测试这段代码,将必须把整个表实例化,包括 UI 控件。使用 Presentation Model 的 UI 设计模式可以更好地构建这段代码。 引入 Presentation Model 桌面应用程序开发的一种核心模式是 Model-View-Controller (MVC) 模式。此模式不是十分适合现代 UI 开发。每个小部件都是自身的小型 MVC 三元组,在小部件级别留给应用程序可做的操作很少。但是,在应用程序级别,就要特别关注需要处理的启用、验证和数据同步等方面。 尝试解决这些问题的一种模式是 Model-View-Presenter 模式。使用该模式,UI 控件将委托控制器对象来完成一些业务任务,例如单击按钮时 “保存”。将业务逻辑移至控制器是迈向可测试性的正确一步。但是,这种模式没有注意到一个重要因素:控制器逻辑经常需要访问 UI 中的数据和更改状态。如果此状态保存在小部件中,例如文本小部件的启用属性,那么测试控制器就需要完整的 UI 或桩来假冒其状态。 将状态和业务逻辑从 UI 中提取出来就可以修正这种情况,这种方法是由另一个名为 Presentation Model 的 MVC 模式提出来的。可以在 Presentation Model 中测试业务逻辑和状态更改而无需使用 UI 代码。这种分离还使 UI 与 Presentation Model 之间的交互仅限于同步数据和状态。 图 2 显示了 Presentation Model 模式的示意图。了解了一些关于 Presentation Model 的背景知识之后,现在就可以使用这种结构更优的模式来转换受损的示例。 图 2. Presentation Model 模式 了解Eclipse中的JFace数据绑定,第3部分: 使用高级功能(3)时间:2011-02-11 IBM Scott Delap编写可测试的 Presentation Model:测试 要将先前的示例重构为使用 Presentation Model 的示例,第一步是编写测试。为此,需要将 JUnit 支持添加到项目中。在软件包浏览器中单击 META-INF/MANIFEST.MF 文件,以打开 Eclipse MANIFEST.MF 编辑器。然后,单击 Dependencies 选项卡并单击 Required Plug-ins 部分中的 Add 按钮。选择 org.junit 插件,然后单击 OK。现在将显示类似图 3 所示的编辑器。 图 3. 添加 JUnit 支持后的 Manifest.MF 编辑器 接下来,创建一个新软件包和一个名为 ContactPresentationModelTest 的新类,该类用于扩展 TestCase。插入清单 2 中所示的测试方法。 清单 2. 用于 Presentation Model 的测试
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |