追求代码质量 - 谨防紧密耦合! - 编程入门网
ndWidgetButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
String value = widgetValue.getText();
if (value == null || value.equals("")) {
dLabel.setText("Please enter a valid widgetID");
} else {
dLabel.setText(getOrderStatus(value));
}
} catch (Exception ex) {
dLabel.setText("Widget doesn''t exist in system");
}
}
//more code
});
追求代码质量 - 谨防紧密耦合!(2)时间:2010-12-12 IBM Andrew Glover单击 GUI 的按钮组件后,直接从数据库中检索某个特定命令的状态,如清单 2 所示: 清单 2. GUI 通过 getOrderStatus 方法直接与数据库通信
清单 2 中的代码出现了问题,尤其是它通过一个硬编码的 SQL 语句直接与 一个硬编码的数据库进行通信。Yeeesh! 您能够想像开发人员测试这种 GUI 和 相关数据库的挑战吗(顺便说一下,测试本应该简单得像测试一个 Web 页面一 样)? 倘若对数据库的任何改动都将 影响到 GUI,那么要考虑修改系统的话会 使情况变得更糟。 DAO 模式 Data Access Object (DAO) 是一种设计模式,它旨在使用接口 和相关实现把低级的数据访问操作从高级事务逻辑中分离出来。从本质上说,某 个具体的 DAO 类通过特定的数据源实现访问数据的逻辑。DAO 模式使得只使用 一个接口为多个数据库,或者甚至各种不同的数据源(如文件系统)定义多个具 体实现成为了可能。 转变为松散耦合! 现在在脑海中考虑一下使用依赖性倒置原则设计的相同的系统。如图 2 所示 ,通过向应用程序添加两个组件来解除应用程序中的耦合是可能的:这两个组件 分别是一个接口和一个实现: 图 2. 一个松散耦合的系统 在图 2 所示的应用程序中,GUI 依赖于一个抽象 —— 一个数据访问对象或 DAO。DAO 的执行直接依赖于数据库,但是 GUI 本身并没有陷入其中。以 DAO 的形式添加一个抽象可以从 GUI 实现将数据库实现解耦。一个接口会替代数据 库与 GUI 代码相耦合。清单 3 显示了该接口。 清单 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |