以前做過的專案與學習,**方面差不多,都是jsp->action->service->dao,認何乙個功能,都是以提交與功能,把上面的過程過一遍,哪麼就完成了,從來沒有細細的想過業務層與dao層他們真正的邊界與責任,seamanly今天與我的談話,讓我知道了一些新的東西,先記下來
[b]dao層[/b]
在寫dao時,不需要太多的關心業務,業務層只會告訴dao層需要什麼資料,需要關心的是如何與資料庫打交道,對資料庫做什麼樣操作,多數為增、刪、查、改,dao層面對的是資料庫,而不是使用者,打個比方,修改資料與邏輯刪除(修改字段表示此資料失效),相對於業務或使用者來說,這是兩個完全不同的操作,但對於資料庫來說,都是對資料做修改操作,如操作的是同乙個表,都可歸納到同乙個dao操作中
[b]業務層[/b]
1、業務層的實現類,不可暴露出來,每乙個實現類,使用單例模式,對例項化進行限制
2、業務層提供的介面,越簡單越直接越好,如刪除只需要id時,業務層不需要得到乙個object(如vo等等),當使用著看到介面時,就能明白,此介面可以提供什麼功能,而不是資料。
3、每乙個業務層介面,所提供的都是乙個功能,也許多個功能部分有重複,但為了更直觀,應提供每個功能乙個介面
[b]領域模式[/b]
這個感覺更多的是物件導向的思想,vo、dto、po等資料傳輸的模式或物件,可以定義一些屬性,而這裡要提出的不只是一些簡單屬性,每乙個這樣的bean,應有與自己想關的些許業務,或是說功能,而bean不可直接呼叫dao來實現業務,而應呼叫業務層來完成功能
最後還提到一點,寫**時,應要抱著業務合法的心態去完成,業務規則的維護,應使用異常去處理,乙個專案設計是否合理,看看自定義異常,也許能看出來,自定義異常寫起來不難,但想真真的用好,也不簡單
物件導向 三層架構(表現層 業務層 持久層)
持久層 採用dao模式,建立實體類和資料庫表對映 orm對映 也就是哪個類對應哪個表,哪個屬性對應哪個列。持久層的目的就是,完成物件資料和關係資料的轉換。業務層 採用事務指令碼模式。將乙個業務中所有的操作封裝成乙個方法,同時保證方法中所有的資料庫更新操作,即保證同時成或同時失敗。避免部分成功部分失敗...
物件導向 三層架構(表現層 業務層 持久層)
三層架構 即表現層 業務層 持久層。持久層 採用dao模式,建立實體類和資料庫表對映 orm對映 也就是哪個類對應哪個表,哪個屬性對應哪個列。持久層 的目的就是,完成物件資料和關係資料的轉換。業務層 採用事務指令碼模式。將乙個業務中所有的操作封裝成乙個方法,同時保證方法中所有的資料庫更新操作,即保證...
物件導向 三層架構(表現層 業務層 持久層)
三層架構 即表現層 業務層 持久層。持久層 採用dao模式,建立實體類和資料庫表對映 orm對映 也就是哪個類對應哪個表,哪個屬性對應哪個列。持久層的目的就是,完成物件資料和關係資料的轉換。dao設計模式一般分為幾個類 1.vo value object 乙個用於存放網頁的一行資料即一條記錄的類,比...