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