接口-DAO模式

发布于:2025-05-09 ⋅ 阅读:(21) ⋅ 点赞:(0)

 1.代码比较

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

(1)StudentDaoArrayImpl.java是通过数组实现相关功能,StudenDaoListImpl.java是通过列表实现相关功能

//StudentDaoArrayImpl.java
private Student[] students;
//.StudenDaoListImpl.java
private List<Student> students = new ArrayList<Student>();

(2)利用数组实现addStudent()时需要遍历数组逐一判断并添加,利用列表实现则直接调用add方法

//StudentDaoArrayImpl.java
public boolean addStudent(Student student) {
		boolean success = false;
		for(int i=0; i<students.length;i++){
			if(students[i]==null){
				students[i] = student;
				success = true;
				break;
			}
		}
		return success;
	}
//StudenDaoListImpl.java
public boolean addStudent(Student student) {
		students.add(student);
		return true;
		
	}

2.DAO模式

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

(1)StudentDao接口包含了addStudent,getStuByName,diplayAllStudents方法的声明

(2)StudentDao接口告诉实现该接口的类必须提供哪些功能,而不是具体怎么去实现这些功能

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

在Java中,DAO(Data Access Object)模式是一种用于将底层的数据访问逻辑与业务逻辑分离的设计模式。它提供了一种抽象层,使得应用程序可以更加灵活地处理数据存储,而不必关心具体的数据源是如何实现的。

(1)使用接口定义DAO,可以让你在不改变现有代码的情况下更改数据存储的方式。例如,你可能开始时使用内存中的集合来存储学生信息,后来决定改用数据库。

(2)接口提供了一种契约,任何实现了这个接口的类都必须提供相应的方法实现。

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

(1)用数组或列表得到的结果相同

StudentDao sdm = new StudentDaoArrayImpl(50);//使用数组实现
StudentDao sdm = new StudenDaoListImpl();//使用列表实现

(2)DAO模式将业务逻辑与数据访问逻辑分开,提高了代码的清晰度和可维护性。

(3)可以减少代码的重复率,DAO模式鼓励重用数据访问代码。一旦为某种类型的数据定义了DAO接口及其实现,就可以在多个地方复用这个实现。

(4)易于替换数据源,如果你需要从一种数据源切换到另一种(比如从内存数据库切换到关系型数据库),只需更改DAO实现即可。业务逻辑保持不变。


网站公告

今日签到

点亮在社区的每一天
去签到