DAO模式代码阅读及应用
项目名称 | DAO模式代码阅读及应用 |
---|---|
课程名称 | Java程序设计 |
班级 | 网安2412 |
指导教师 | 郑如滨 |
学生姓名 | 王嘉熙 |
学号 | 202421336061 |
一、StudenDaoListlmpl.java与StudentDaoArraylmpl.java有何不同?
- 1.StudentDaoListImpl.java和StudentDaoArrayImpl.java的主要不同在于数据存储的容器。
- 2.StudentDaoArrayImpl.java使用数组来存储学生数据。数组的长度是固定的,在初始化时就需要确定大小,当需要存储更多数据且超过数组长度时,操作会比较麻烦。
- 3.StudentDaoListImpl.java使用ArrayList来存储学生数据。ArrayList 的长度可以根据需要自动增长或缩小,使用起来更加灵活方便。
二、StudentDao.java文件是干什么用的?为什么里面什么实现代码都没有?
StudentDao.java是一个接口,它定义了对学生数据进行操作的方法规范,比如添加学生、查询学生、显示所有学生等方法。它是StudentDaoArrayImpl.java和StudentDaoListImpl.java等实现类的 “模板”,规定了这些实现类必须实现哪些方法。
接口的设计目的就是只提供方法的声明,而不提供具体的实现。具体的实现由不同的实现类(如StudentDaoArrayImpl和StudentDaoListImpl)根据自身的需求来完成。
三、使用搜索引擎搜索"Java DAO",选出几句你能看懂的、对你最有启发的话。请结合接口知识去理解。
- 1.“DAO(Data Access Object)”模式是一种将数据访问逻辑与业务逻辑分离的设计模式,DAO 接口定义了数据操作的方法,而 DAO 实现类负责具体的数据库(或其他数据存储)操作。
- 2.接口(如StudentDao)在这里起到了规范数据操作方法的作用,它屏蔽了具体的数据存储细节(是用数组、列表还是数据库),业务逻辑只需要和 DAO 接口交互,而不需要关心具体的实现类是如何操作数据的,这体现了接口的 “抽象” 和 “解耦” 特性。
- 3.“通过 DAO 接口,我们可以在不修改业务逻辑代码的情况下,更换不同的 DAO 实现类(比如从使用数组存储数据的实现类换成使用数据库存储数据的实现类),这大大提高了代码的可维护性和可扩展性。
- 4.接口定义了统一的 “契约”,业务逻辑代码依赖于这个接口,而不是具体的实现类。当需要更换数据存储方式时,只需要提供新的实现类,业务逻辑代码不需要做任何修改,这就是接口带来的 “多态” 和 “易扩展” 的优势。
四、尝试运行Test.java。根据注释修改相应代码。结合参考代码回答使用DAO模式有什么好处?
DAO 模式的好处:
-解耦:将数据访问逻辑与业务逻辑分离。业务逻辑只需要调用 DAO 接口提供的方法,而不需要关心数据是如何被存储和获取的。例如在Test.java中,业务逻辑只需要调用StudentDao接口的方法,不需要关心StudentDaoArrayImpl还是StudentDaoListImpl在背后如何操作数据。
-可扩展性好:如果需要更换数据存储方式(比如从使用数组存储换成使用数据库存储),只需要编写一个新的 DAO 实现类,然后在测试代码(Test.java)中替换掉原来的实现类对象即可,业务逻辑代码不需要做任何修改。
-便于测试:可以为 DAO 接口编写模拟的实现类(比如在测试时使用内存中的集合来模拟数据库操作),方便对业务逻辑进行单元测试,而不需要依赖实际的数据库等数据存储。