DAO模式代码阅读及应用

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

它们对方法的具体实现不同,StudenDaoListImpl用ArrayList来存放学生类对象,StudentDaoArrayImpl直接用学生类型数组来存放学生类对象,因此它们对接口中三种方法的实现过程不一样。

   

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

存放StudentDao这个接口;因为接口中的方法在其他类中实现。

   

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

隔离了数据访问代码和业务逻辑代码。业务逻辑代码直接调用DAO方法即可,完全感觉不到数据库表的存在。分工明确,数据访问层代码变化不影响业务逻辑代码,这符合单一职能原则,降低了藕合性,提高了可复用性。

理解:

接口是一系列方法和特征的集合,然后让其他部分来分别实现各自需求的功能。因此接口可以较好地实现系统的功能而不涉及任何具体的实现细节,这样可以保证代码的安全和严密,在软件开发中常常体现这一思想。
   

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

(1)使用数组实现:

DAO模式代码阅读及应用
运行结果:
DAO模式代码阅读及应用
 

(2)使用列表实现:

DAO模式代码阅读及应用
运行结果:
DAO模式代码阅读及应用
 

DAO模式的好处:

隔离了不同数据库实现。采用面向接口编程,如果底层数据库变化,只要增加 DAO 接口的新实现类即可,原有的实现不用修改,这符合 "开-闭" 原则。降低了代码的藕合性,提高了代码扩展性和系统的可移植性。