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

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

StudenDaoListlmpl,java(Listlmpl)中是利用列表的方法来储存数据《而StudentDaoArraylmpl.java(Arraylmpl)中则是利用数组的方法来储存数据。且两者的查找数据方式也不同,Listlmpl是直接搜索列表中的数据,而Arraylmpl则是先判断该数组是否为空,在进行比较查找。插入数据中,

Listlmpl是直接添加到列表中的最后一位,Arraylmpl则是从头开始查找为空的数组,把数据放进该空数组中。

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

定义一个StudentDao接口,声明三个方法。其他类可以通过implements实现接口,引用该接口内的方法。因为接口只有通过其他类的引用才能实现,而其它类可以拥有着相同的方法声明,不同子类的相同方法声明也可以有着不同的实现代码。

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

DAO模式的作用

1隔离业务逻辑代码和数据访问代码 //像使用接口一样,将方法与数据访问分离开。

2.隔离不同数据库的实现 //就像引用接口一样,不同数据库的相同方法声明的作用都不一样。

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);
		}
	}
}

两个类的运行结果都相同。

好处:

1、隔离了数据访问代码和业务逻辑代码。业务逻辑代码直接调用DAO方法,避免发生代码混乱。分工明确,将数据访问接口和数据访问实现像隔开,降低了藕合性,提高了可复用性。

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

posted @ 2020-10-25 19:33  王明け  阅读(148)  评论(0)    收藏  举报