(这里面的域逻辑,原文是叫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,数据库访问,域逻辑)。
分享到:
相关推荐
第 7 章 将数据库访问,UI和域逻辑分离 第 8 章 以用户例事管理项目 第 9 章 用CRC 卡协助设计 第 10 章 验收测试(ACCEPTANCE TEST) 第 11 章 对UI进行验收测试 第 12 章 单元测试 第 13 章 测试驱动编程 第 14 章 ...
#### 八、将数据库访问、UI和域逻辑分离 **1. 为什么要分离** - 提高系统的可维护性。 - 增强代码的复用性。 - 便于进行单元测试。 **2. 实现方法** - **MVC模式**:将应用程序分为模型、视图和控制器三个主要...
#### 八、将数据库访问、UI和域逻辑分离 **分离的原因** - 提高系统的可维护性和可扩展性。 - 有利于团队分工合作。 **分离的方法** 1. **采用MVC架构**:模型(Model)、视图(View)、控制器(Controller)。 ...
#### 八、将数据库访问、UI和域逻辑分离 **1. 分离的好处** - **提高系统的可维护性**:通过将不同的关注点分离,可以使代码结构更加清晰,便于维护和扩展。 - **增强代码的可测试性**:分离后的各个部分更容易独立...