5-互评-OO之接口-DAO模式代码阅读及应用

1. StudenDaoListImpl.java与StudentDaoArrayImpl.java有何不同?

StudenDaoListImpl.java中使用List接口指向ArrayList类来存储student数据,而StudentDaoArrayImpl.java中直接使用Student数组来存储student数据。

2. StudentDao.java文件是干什么用的?为什么里面什么实现代码都没有?

StudentDao.java文件用于存放StudentDao接口;因为接口之中只需要有一些方法声明,需要被实现才能发挥它的作用,而实现该接口的所有类都有相同的方法形态,但是它们之间方法的具体实现不同。

3. 使用搜索引擎搜索“Java DAO”,选出几句你能看懂的、对你最有启发的话。请结合接口知识去理解。

  1. DAO (DataAccessobjects 数据存取对象)是指位于业务逻辑和持久化数据之间实现对持久化数据的访问。通俗来讲,就是将数据库操作都封装起来。
    理解:DAO模式通过定义接口,然后让不同的类来实现该接口,可以将对数据的操作封装起来,从外部来看,对数据的操作都是一样的,但是在类的内部对数据的操作往往都有所不同。
  2. DAO 模式的优势在于隔离了不同数据库实现。
    理解:DAO模式采用面向接口编程,当使用的数据库发生变化时,只需要根据接口实现一个操作新的数据库的新类即可,而无需对原有的类进行修改,降低了代码的藕合性,提高了代码扩展性和系统的可移植性。

4. 尝试运行Test.java。根据注释修改相应代码。结合参考代码回答使用DAO模式有什么好处?

修改前的代码:

修改前的运行结果:

修改后的代码:

修改后的运行结果:

使用DAO模式有什么好处?

  1. 隔离了数据访问代码和业务逻辑代码。在Test.java的main方法中,只需要调用addStudent、getStuByName、diplayAllStudents即可实现对student数据的增添、获取和打印功能,而无须具体了解是如何访问到这些数据的。
  2. 隔离了不同数据库实现。参考代码中StudentDaoArrayImpl和StudenDaoListImpl两个类均实现了StudentDao接口,它们具有相同的方法,但是它们具体存储数据的形式不同,想要使用哪种数据存储方式就注释掉另外一种即可(StudentDao sdm = new StudentDaoArrayImpl(50);//使用数组实现StudentDao sdm = new StudenDaoListImpl();//使用列表实现),而无须修改数据访问代码。

posted @ 2020-10-25 15:26  朱振豪  阅读(142)  评论(0编辑  收藏  举报