敏捷开发的必要技巧7:将数据库访问,UI和域逻辑分离

(这里面的域逻辑,原文是叫Domain logic,我想用业务逻辑层来说明的,可是后面又有这句话,“Domain logic is also called "domain model" or
       "business logic".”,即“域逻辑又称为域模型或者业务逻辑”,所以我们还是老老实实叫它域逻辑层吧)。

中间略过。。。。。。。


这段代码看起来还正常吧?但是这里面将处理三种类别的代码都混在了一起:

   1.UI: JDialog, JTextField, 响应用户事件的代码。

   2.数据库访问: Connection, PreparedStatement, SQL statements, ResultSet 等等。

   3.域逻辑: 参会者的默认id,参会者的名字必填,所属地区的限制等等。域逻辑又称为“域模型”或者“业务逻辑”。

这三个不同类别的代码混在一起,会造成下面的问题:
1.代码很复杂。
2.代码很难重用。如果我们想创建一个EditParticipantDialog,让用户更改参会者的信息,我们就想重用部分域逻辑(比如,地区的限制)。但实现这部分域逻辑的代码跟AddParticipantDialog混在了一起,根本不能重用。如果是在一个web系统中,就更难重用了。
3.代码很难测试。每次要测这样的一段代码,我们都要建一个数据库,还要通过一个用户操作界面来测试。
     4.如果数据库表结构更改了,AddParticipantDialog这个类,还有其他的很多地方都要跟着更改。
5.它导致我们一直在考虑一些低层的太细节的概念,比如数据库字段,表的记录之类的,而不是类,对象,方法和属性这一类的概念。或者说白了一点,一直在考虑怎么往数据库里面装数据,而没有了面向对象的概念,没有了建立业务模型的思维。

因此,我们应该将这三种类别的代码分离开(UI,数据库访问,域逻辑)。        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值