首页 » 软件开发 » 软件项目实训及课程设计指导—如何在数据持久层中应用DAO模式(系统数据软件数据源访问)

软件项目实训及课程设计指导—如何在数据持久层中应用DAO模式(系统数据软件数据源访问)

南宫静远 2024-07-24 06:59:07 0

扫一扫用手机浏览

文章目录 [+]

软件应用系统中的数据持久层主要为整个软件应用系统提供数据访问功能服务,从而可以使软件应用系统中的业务层组件的设计和开发人员能够专注于系统业务逻辑的开发,并且能够在不同应用项目中重用数据访问功能服务——这样将能够避免重复地进行对目标数据的增、删、改、查等功能的开发过程。

其次,将软件应用系统的数据访问服务组件从系统的业务处理逻辑中独立出,能够保持软件应用系统的多层架构体系设计的优势,继承和延续J2EE系统平台中特有的可伸缩性和可扩展性。

2、J2EE系统平台中的软件应用系统持久层的系统设计目标

软件项目实训及课程设计指导—如何在数据持久层中应用DAO模式(系统数据软件数据源访问) 软件开发
(图片来自网络侵删)

(1)应用数据访问服务接口隔离系统中的业务层和持久层之间的关系

由于软件应用系统持久层中的的相关组件(如数据访问操作组件和数据连接组件)是异变的、不稳定的应用组件——因为软件应用系统的持久媒介是多样化的(数据库系统、XML文件、JSon文本文件、Excel数据表等形式)、数据源的连接方式也是多样的(直接连接、带缓存池的连接),如果数据源为数据库系统,则物理数据库系统的类型也是多样化的(可以为MySql开源数据库系统,也可能是Oracle、DB2、MS SQLServer等商业数据库系统)。

因此为了能够达到对具体的数据源(比如数据库系统或者XML文件等形式)访问操作进行屏蔽,应该只为上层的业务逻辑处理层提供有关的数据访问服务的接口。
如下示图为体现此设计思想的原理性类关系示图。

由此,软件应用系统中的业务逻辑功能类相关程序只需要通过这些数据访问服务接口内所提供的功能方法完成对不同的目标数据源中的最终数据的读、写相关的功能操作,而不需要具体地了解它们的具体技术实现的细节。

(2)为什么要设计和应用数据访问服务接口

由于软件应用系统中的业务逻辑类和对应的数据源之间是相互分离的,并且业务对象也不需要了解应用系统中底层的数据源的具体实现,所以当软件应用系统中的数据源发生变化(比如数据库的类型或者对数据库的连接方式、或者数据持久媒介发生了变化(如原本是将数据存储到物理数据库系统,但随后又改变为将数据保存到XML格式的数据文件等)时,迁移仅仅涉及到需要修改软件应用系统持久层中有关的功能实现类。
请见下图所示的体现这样的设计目标的原理形式的UML类图示。

从上面的示例图中可以了解到,软件应用系统中的业务处理功能类并没有直接依赖某种形式的数据源的数据访问功能操作,而是依赖数据访问服务接口。
从而隔离了软件应用系统中的业务处理功能类对具体的数据源的依赖,也就提高了软件应用系统的灵活性和对数据源的适应性。

(3)明确J2EE系统平台中的软件应用系统持久层的系统设计目标

由此可知,软件应用系统中的系统持久层内的各个功能组件主要是为整个软件应用系统提供一个统一的、安全可靠和支持并发访问的数据持久访问服务,此外,它们还应该具有透明性——软件应用系统中的业务对象在不需要知道软件应用系统中的目标数据源的具体类型和特定实现的细节等方面的信息,便可以使用软件应用系统中所需要的数据源。

由此,这些设计要求也就是J2EE系统平台中的软件应用系统持久层的设计目标。

3、在经典的三层架构体系设计中为什么要将业务处理层和数据持久层相互分离

J2EE技术平台倡导软件应用系统中的数据持久层要为整个软件应用系统提供全部的数据访问功能服务,从而可以使软件应用系统业务处理层组件的开发者能够更加地专注于软件应用系统中与业务逻辑有关的功能开发和程序代码实现,而软件应用系统持久层开发人员也能够更加专注于编写数据访问功能实现代码,而且代码的质量更高!

比如,可以为每个数据源提供对应的创建、读取、更新和删除操作的功能类;这样的体系架构设计方案还能够达到在不同的软件应用系统项目中重用现有的数据访问服务的效果。
如下示图为经典的软件应用系统中三层架构体系的分层示例图。

此外,这样的设计方案也将能够避免重复地进行对数据库表中的数据增、删、改、查等功能的开发实现过程,提高了软件应用系统开发的总体效率。

另外,将软件应用系统中的数据访问服务从业务逻辑处理相关程序中独立出,也还能够保持J2EE系统平台多层架构体系的优势,从而也使得软件应用系统在系统体系架构层次方面就具有良好的可伸缩性和可扩展性。

因此,在经典的三层架构体系的设计中,要将软件应用系统的业务处理层和数据持久层相互分离——这在J2EE MVC架构模式中的模型处理层中也是倡导将系统的业务处理程序和系统的数据访问程序相互分离。
如下示图为体现该设计思想的《蓝梦网上商城》应用系统的体系架构设计结果的UML包图。

4、J2EE应用系统数据持久层主要应用DAO模式实现

(1)什么是DAO(Data Access Object,数据访问对象)设计模式

DAO设计模式是J2EE系统平台中所提供的标准设计模式之一,软件应用系统的设计和开发人员通过应用此设计模式能够达到把处于软件应用系统底层的数据访问操作的逻辑和位于上层的业务处理逻辑两者相互分离。

(2)为什么要提供DAO设计模式

此设计模式的主要作用是封装对软件应用系统中数据库的各种数据访问操作,每个DAO功能类程序实现对物理数据库系统中某个数据表中记录的"增(CREATE)、删(DELETE)、改(UPDATE)、查(READER)"(简称为CRUD)操作。

下图所示为在示例项目银行账户信息管理系统中应用DAO模式分别为用户信息和账户信息数据库表提供对应的DAO组件接口和它们各自的功能实现类的UML类图——在设计方面,继续遵守"面向接口编程功能实现"的开发原则。

当然,对DAO组件类的对象实例的创建方式一般是应用工厂方法设计模式。
因为工厂方法设计模式能够将创建对象实例的功能程序与使用对象实例的功能程序相互分离。
下图所示为银行账户信息管理系统中提供对账户DAO组件类的对象实例创建的工厂类AccountManageDAOFactory的实现代码片段的局部图示截图。

相关文章

语言中的借用,文化交融的桥梁

自古以来,人类社会的交流与发展离不开语言的传播。在漫长的历史长河中,各民族、各地区之间的文化相互碰撞、交融,产生了许多独特的语言现...

软件开发 2025-01-01 阅读1 评论0

机顶盒协议,守护数字生活的新卫士

随着科技的飞速发展,数字家庭逐渐走进千家万户。在这个时代,机顶盒成为了连接我们与丰富多彩的数字世界的重要桥梁。而机顶盒协议,作为保...

软件开发 2025-01-01 阅读1 评论0

语言基础在现代社会的重要性及方法步骤

语言是人类沟通的桥梁,是社会发展的基础。语言基础作为语言学习的基石,对于个人、社会乃至国家的发展具有重要意义。本文将从语言基础在现...

软件开发 2025-01-01 阅读2 评论0

粤语电影,传承文化,点亮时代之光

粤语电影,作为中国电影产业的一朵奇葩,以其独特的地域特色、丰富的文化内涵和鲜明的艺术风格,赢得了广大观众的喜爱。本文将从粤语电影的...

软件开发 2025-01-01 阅读5 评论0

苹果游戏语言,塑造未来娱乐体验的基石

随着科技的飞速发展,游戏产业逐渐成为全球娱乐市场的重要支柱。在我国,游戏产业更是蓬勃发展,吸引了无数玩家和投资者的目光。而在这其中...

软件开发 2025-01-01 阅读1 评论0