码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-10-26 11:29:47      阅读:17      评论:0      收藏:0      [点我收藏+]

标签:抽象   引擎   结果   数据库   rgs   文件   面向   搜索引擎   lang   

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

StudenDaoListImpl.java是用列表的方式存储学生信息,StudentDaoArrayImpl.java是用数组来存储学生信息。两者在查找和添加两个方法有所不同,查找:StudenDaoListImpl.java从头开始判断名字是否相同,StudentDaoArrayImpl.java先要判断该元素不为空,在判断名字是否相同;添加:StudenDaoListImpl.java直接用列表的add方法在列表末尾添加,StudentDaoArrayImpl.java是从头开始找空的元素,将其存放进去。两者的显示方法差不多。

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

定义一个StudentDao接口,里面有三个方法的声明,其他类通过继承StudentDao类,实现StudentDao.java文件中的方法,子类可以有着相同的三个方法声明,不同的子类也可以根据不同的要求写出不一样的方法代码。

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

技术图片

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

package stumanagement;

public class Test {

	public static void main(String[] args) {
		Student[] students = new Student[3];
		students[0] = new Student("Tom");
		students[1]= new Student("Jerry");
		students[2] = new Student("Sophia");

		
		StudentDao sdm = new StudentDaoArrayImpl(50);//使用数组实现
		//StudentDao sdm = new StudenDaoListImpl();//使用列表实现
		
		//往后台写数据,无需考虑后台是什么(到底是数据库、文件、数组、List)
		//因为这里是面向StudentDao接口
		System.out.println("===========写入学生========");
		for(Student e:students){
			if (!sdm.addStudent(e)){
				System.out.println("添加学生失败");
			}else{
				System.out.println("插入成功!!");
			}
		}
		System.out.println("===========显示所有学生========");
		sdm.diplayAllStudents();
		System.out.println("===========查询学生========");
		Student temp = sdm.getStuByName("Tom") ;
		if(temp == null){
			System.out.println("查无此人");
		}else{
			System.out.println(temp);
		}


	}

}

两个类都继承了StudentDao,运行结果相同。

好处:

通过StudentDao接口,可以创建两个不同的子类sdm,进行插入,查找,显示学生信息。两个子类通过不同的代码实现StudentDao接口里的方法,使得两个子类的运行结果都相同。

1.数据存储逻辑的分离:一方面避免业务代码中混杂的JDBC代码,另一方面,数据访问接口与数据访问实现相分离,这样精通数据库的人可以根据接口专注于数据库访问的最优化实现,而精通业务的人可以专注于业务逻辑编码。

2.数据访问底层实现的分离:DAO模式将数据访问分为抽象层和实现层,分离了数据使用和数据访问的底层实现细节。这样可以在保持上层结构不变的情况下,通过更改底层实现来修改数据访问的机制,比如只要通过修改数据访问层实现,我们就可以部署在不同数据库平台上。

5.可选:编写一些使用DAO模式的代码。比如使用文件作为购物车存储底层。

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

标签:抽象   引擎   结果   数据库   rgs   文件   面向   搜索引擎   lang   

原文地址:https://www.cnblogs.com/yt0617/p/13874536.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!