• 测试技术
  • 博客
  • 视频
  • 开源
  • 论坛
  • 沙龙
  • 下载
  • 杂志
  • 招聘

字号: | 推荐给好友 上一篇 | 下一篇

追求代码质量: 谨防紧密耦合!

发布: 2008-6-23 18:03 | 作者: 不详 | 来源: 领测软件测试网编辑整理 | 查看: 13次 | 进入领测软件测试网论坛讨论

领测软件测试网

%YR-Iuev(c int x = 0; while (rs.next()) { buff.append(++x + ": "); buff.append(rs.getString(1)); buff.append("\n"); } if(buff.length() > 0){ retValue = buff.toString(); }else{ retValue = "Widget doesn't exist in system"; } } catch (SQLException e1) { e1.printStackTrace(); } finally { try {rs.close();} catch (Exception e3) {} try {stmt.close();} catch (Exception e4) {} try {con.close();} catch (Exception e5) {} } return retValue; }
AA,T ?.ym w软件测试技术网Q{9L7_o@%WZ

t*] x q*K清单 2 中的代码出现了问题,尤其是它通过一个硬编码的 SQL 语句直接与一个硬编码的数据库进行通信。Yeeesh! 您能够想像开发人员测试这种 GUI 和相关数据库的挑战吗(顺便说一下,测试本应该简单得像测试一个 Web 页面一样)? 倘若对数据库的任何改动都 影响到 GUI,那么要考虑修改系统的话会使情况变得更糟。

R*E({/w ?9@(G
DAO 模式
-Gb9HC;yBData Access Object (DAO) 是一种设计模式,它旨在使用接口和相关实现把低级的数据访问操作从高级事务逻辑中分离出来。从本质上说,某个具体的 DAO 类通过特定的数据源实现访问数据的逻辑。DAO 模式使得只使用一个接口为多个数据库,或者甚至各种不同的数据源(如文件系统)定义多个具体实现成为了可能。
软件测试技术网W3C"NA1O9a9K4V-[

转变为松散耦合!

3H/DC9Vz