所谓四层架构的分法,就是想把软件设计师工作量降下来,减少重复性的代码,提高开发速度,是软件有相当好的可维护、易扩展,这种四层架构对很多人开发同软件来说,可以有个清晰的思路。我把系统分成表示层(UI)、业务逻辑层(Bussiness/Service)、数据访问层(DataAccess/Dao)、数据实体层(Domain)。如果你还考虑到数据库设计的话,就是五层架构。
1、UI
关注request/response动作
解决一个模型的UI显示
处理一些基本的格式逻辑以及非业务逻辑相关的验证逻辑
处理从其他抛出的异常;
2、DAO
用来与持久化的数据库,如关系数据库交互
提供一种查询语言
可能提供ORMapping的机制
可以使用JDBC,hibernate,Ibtis,JDO,Entity Beans等;
3、Domain
包含一系列可以贯通上边所说两层的业务对象
包含其他域对象之间有交互关系
可能又丰富的业务逻辑
就是把实际数据库里的映射到内存中,也称为OMapping(能通过ORM获取相应的对象)
域对象之间可能存在依赖关系
4、Service
将业务逻辑的业务暴露给表现层
管理容器级别的服务,例如事务,安全,数据访问逻辑