1. StudenDaoListImpl.java与StudentDaoArrayImpl.java有何不同?
两份代码如下:
可以看出,不同之处在于它们两个对方法具体的实现不同。StudenDaoListImpl使用Array
List来对学生类的对象进行存放;StudentDaoArrayImpl直接使用数组来对学生类对象进行存放,这样子使它们对接口中的方法实现的不一样。
2.StudentDao.java文件是干什么用的?为什么里面什么实现代码都没有?
这个文件是一个接口,当在某个类中需要实现方法时可以提供一个统一的操作方法名((把对数据库的所有操作定义成抽象方法,可以提供多种实现)。
3.使用搜索引擎搜索“Java DAO”,选出几句你能看懂的、对你最有启发的话。请结合接口知识去理解。
参考文章:https://www.runoob.com/note/27029
- 看了这篇文章,在我看来,DAO模式的重点就是实现了代码的隔离,即文中所提到的数据访问代码和业务逻辑代码。这样使得DAO接口可以做为需要实验方法的一个统一的操作方法名来提供多种实现,大大提高代码的灵活性。
- 隔离的不同数据库的实现,采用面向接口编程,将接口与实现类进行分离,这样的写法 即使在后续需要添加或者修改代码,只需要在DAO接口中增加新的实现类即可,而在我们的TEST的测试中,我们可以看到,使用两种不同的存储方法,只需要修改一行代码即可,这就是实现了两次隔离的好处。
4.尝试运行Test.java。根据注释修改相应代码。结合参考代码回答使用DAO模式有什么好处?
- 使用数组实现
- 使用列表实现
可以看到,使用不同的方法进行实现最后得到了相同的结果,而这只仅仅修改了一行代码而已。这就是DAO模式的好处:当需要使用不同方法的时候,只需要修改DAO的访问方式就行了,不需要修改整个代码(即数据库的修改只要修改DAO层的访问方式就可以了,不用整个项目都进行修改)。