示例
这是一个会议管理系统。用来管理各种各样的会议参与者信息。数据库里面有个表Participants,里面的每条记录表示一个参会者。因为经常会发生用户误删掉某个参会者的信息。所以现在,用户删除时,并不会真的删除那参会者的信息,而只是将该记录的删除标记设为true。24小时以后,系统会自动将这条记录删除。但是在这24小时以内,如果用户改变主意了,系统还可以将这条记录还原,将删除标记设置为false。
请认真的读下面的代码:
|
注意到,countParticipants这个方法只计算那些deleteFlags为false的记录。也就是,被删除的那些参会者不被计算在内。
上面的代码看起来还不错,但却有一个很严重的问题。什么问题?先看看下面的代码:
|
最后一行代码,会打印出"There are 1 participants"这样信息,对不?错!它打印的是"There are 2 participants"!因为最后一行调用的是DBTable里面的这个方法getCount,而不是ParticipantsInDB的countParticipants。getCount一点都不知道删除标记这回事,它只是简单的计算记录数量,并不知道要计算那些真正有效的参会者(就是删除标记为false的)。
| 共4页: 1 [2] [3] [4] 下一页 | ||
|
|
|||
| · Windows Server 2008 .. · WiMAX、3G、McWill博弈 · 程序员如何成长? · 龙芯要做中国的“奔腾” · 服务器基础知识入门 · ARP攻击防范与解决方案 · 甲骨文Oracle 11g正式.. · CISSP认证成长之路 |
· 51CTO国庆充电专题之好.. · 我是黑客我怕谁——讲.. · Solaris 10 配置管理 · SQL Server入门到精通 · 华为、贝恩资本22亿美.. · Ubuntu 中文开源频道 · 服务器虚拟化 · AMD Phenom三核处理器.. |
||
|
|||
| · Java基础教程 · VPN技术 · ARP攻击防范与解决方案 · SQL Server 2005全解 · SOA 面向服务架构 · SQL Server 2005全解 · Java编程开发手册 · RAID——磁盘阵列基础 |
· 三层交换技术专题 · SQL Server入门到精通 · 刀片服务器基础 · Windows Server 2003企.. · Windows远程桌面应用 · C#技术开发指南 · VPN技术 · Solaris 10 配置管理 |
||
|
|||
| · ARP攻击防范与解决方案 · VPN技术 · SQL Server 2005全解 · Java基础教程 · SQL Server入门到精通 · SQL Server 2005全解 · SOA 面向服务架构 · Java编程开发手册 |
· C#技术开发指南 · 刀片服务器基础 · 三层交换技术专题 · C#技术开发指南 · Windows远程桌面应用 · RAID——磁盘阵列基础 · Windows Server 2003企.. · 邮件服务器专题 |
||
| ·DB2 Viper快速入门 ·DB2 9数据库的镜像分割与.. |
·将XML应用程序从DB2 8.x.. ·DB2 9中的pureXML:如何.. |
| ·服务器中的“傻瓜机”在.. ·盖茨也喜欢登录Youtube看.. |
· · |
| ·再获殊荣 ·第一轮播报 |
·使用Ghost32.exe进行点对.. ·飞机中的战斗机 |
| ·10月第4周回顾:欧盟垄断.. ·10月第3周回顾:微软挤入.. |
·10月第2周回顾:SAP“被.. ·强烈质疑“步行1公里就能.. |
| · 华为、贝恩资本22亿美元.. · NGN:下一代网络 · 网络访问中断大排查 |
· 黑客老鸟讲入侵攻击:扫.. · 网络嗅探教程:使用Snif.. · 防范脚本入侵攻击,你做.. |
| · BEA会被甲骨文成功收购.. · 程序员如何成长? · Groovy开发技术 |
· 解析Ajax开发框架 走进A.. · 基于Google Maps与Ajax.. · 基于Google Maps与Ajax.. |
| · 微软在欧盟反垄断中输掉.. · 热门 IT 培训认证官方资.. · Ubuntu 中文开源频道 |
· 微软在欧盟反垄断中输掉.. · 龙芯2F主板曝光 可满足D.. · Google推出唯一硬件——.. |
| · 甲骨文Oracle 11g正式发.. · Oracle数据库开发之PL/S.. · Oracle数据库开发基础教.. |
· 硬盘之父获得诺贝尔物理.. · 存储2006,一个并购的大.. · IDC宣布浪潮蝉联存储市.. |