1. 程式人生 > 實用技巧 >C語言學習筆記之 名稱空間

C語言學習筆記之 名稱空間

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模式將資料訪問分為抽象層和實現層,分離了資料使用和資料訪問的底層實現細節。這樣可以在保持上層結構不變的情況下,通過更改底層實現來修改資料訪問的機制,比如只要通過修改資料訪問層實現,我們就可以部署在不同資料庫平臺上。