5-互評-OO之介面-DAO模式程式碼閱讀及應用
阿新 • • 發佈:2020-10-25
1. StudenDaoListImpl.java與StudentDaoArrayImpl.java有何不同?
StudenDaoListImpl.java中使用List介面指向ArrayList類來儲存student資料,而StudentDaoArrayImpl.java中直接使用Student陣列來儲存student資料。
2. StudentDao.java檔案是幹什麼用的?為什麼裡面什麼實現程式碼都沒有?
StudentDao.java檔案用於存放StudentDao介面;因為介面之中只需要有一些方法宣告,需要被實現才能發揮它的作用,而實現該介面的所有類都有相同的方法形態,但是它們之間方法的具體實現不同。
3. 使用搜索引擎搜尋“Java DAO”,選出幾句你能看懂的、對你最有啟發的話。請結合介面知識去理解。
- DAO (DataAccessobjects 資料存取物件)是指位於業務邏輯和持久化資料之間實現對持久化資料的訪問。通俗來講,就是將資料庫操作都封裝起來。
理解:DAO模式通過定義介面,然後讓不同的類來實現該介面,可以將對資料的操作封裝起來,從外部來看,對資料的操作都是一樣的,但是在類的內部對資料的操作往往都有所不同。 - DAO 模式的優勢在於隔離了不同資料庫實現。
理解:DAO模式採用面向介面程式設計,當使用的資料庫發生變化時,只需要根據介面實現一個操作新的資料庫的新類即可,而無需對原有的類進行修改,降低了程式碼的藕合性,提高了程式碼擴充套件性和系統的可移植性。
4. 嘗試執行Test.java。根據註釋修改相應程式碼。結合參考程式碼回答使用DAO模式有什麼好處?
修改前的程式碼:
修改前的執行結果:
修改後的程式碼:
修改後的執行結果:
使用DAO模式有什麼好處?
- 隔離了資料訪問程式碼和業務邏輯程式碼。在Test.java的main方法中,只需要呼叫addStudent、getStuByName、diplayAllStudents即可實現對student資料的增添、獲取和列印功能,而無須具體瞭解是如何訪問到這些資料的。
- 隔離了不同資料庫實現。參考程式碼中StudentDaoArrayImpl和StudenDaoListImpl兩個類均實現了StudentDao介面,它們具有相同的方法,但是它們具體儲存資料的形式不同,想要使用哪種資料儲存方式就註釋掉另外一種即可(
StudentDao sdm = new StudentDaoArrayImpl(50);//使用陣列實現
StudentDao sdm = new StudenDaoListImpl();//使用列表實現
),而無須修改資料訪問程式碼。