持久:英文即Persistence,簡單來講,也就是把數據保存到可掉電式存儲設備中供之后使用。數據持久化往往意味著將內存中的數據保存到磁盤上加以固化,而持久化的實現(xiàn)過程則大多通過各種關系型數據庫來完成。
持久層:也就是在系統(tǒng)邏輯層面上,專注于實現(xiàn)數據持久化的一個相對獨立的領域。
所謂的持久層,其判定標準
1、如果表示層發(fā)生變化,需要從JSP遷移到Java WebStart Client,我們的數據庫代碼是否需要重新編譯。
2、如果業(yè)務邏輯層發(fā)生了變化,那么數據持久化代碼是否需要重新編譯?
3、如果地秤數據庫持久化機制發(fā)生了改變,那么,系統(tǒng)中的非持久化部分代碼是否需要重新編譯?
何謂耦合:就是事務之間的相互關聯(lián)關系
何謂解耦:即采用一些手段降低關聯(lián)的緊密程度。
我們需要的是一個粒度適中的耦合關系,而并非完全意義上的松耦合。
軟件系統(tǒng)的研發(fā)過程中,貫穿了技術層面和業(yè)務層面的代碼實現(xiàn)過程。程序邏輯必須結合業(yè)務領域內相應的數據和系統(tǒng)資源,反映出特定的業(yè)務邏輯。對于一個業(yè)務系統(tǒng)而言,系統(tǒng)研發(fā)的目的是為特定業(yè)務提供支持,業(yè)務邏輯往往是系統(tǒng)實現(xiàn)的核心。此時,將業(yè)務邏輯與數據訪問邏輯相分離尤為重要。
在業(yè)務邏輯的實現(xiàn)過程中,我們應該避免業(yè)務邏輯代碼中混雜數據訪問代碼,而同樣,數據訪問代碼中,也應該避免出現(xiàn)業(yè)務邏輯代碼。
通過良好的設計將邏輯結構與物理結構相分離。這里所謂的物理結構并非傳統(tǒng)意義上的硬件設備,而是我們所無法控制的系統(tǒng)層面,如底層數據庫接口。
目標只有一個,底層實現(xiàn)變動的情況下,盡量避免對上層結構產生影響。一個設計良好的持久層實現(xiàn),即便從oracle切換到mysql數據庫,也不會引起大范圍的代碼變更。
DAO(Data Access Object)模式,DAO模式實際上是2個模式的組合,即Data Accessor模式和Active Domain Object模式,其中Data Accessor模式實現(xiàn)了數據訪問和業(yè)務邏輯的分離,而Active Domain Object模式實現(xiàn)了業(yè)務數據的對象化封裝,一般我們將這2個模式組合使用。
DAO模式通過對業(yè)務層提供數據抽象層接口,實現(xiàn)了以下目標:
1、數據存儲邏輯的分離
通過對數據訪問邏輯進行抽象,為上層結構提供抽象化的數據訪問接口。業(yè)務層無需關心具體的select,insert,update操作,這樣,一方面避免了業(yè)務代碼中混雜JDBC調用語句,使得業(yè)務邏輯實現(xiàn)更加清晰,另一方面,由于數據訪問接口與數據訪問實現(xiàn)相分離,也使得開發(fā)人員的專業(yè)劃分成為可能。
2、數據訪問底層實現(xiàn)的分離
DAO模式通過將數據訪問劃分為抽象層和實現(xiàn)層,從而分離了數據使用和數據訪問的底層實現(xiàn)細節(jié)。這意味著業(yè)務層與數據訪問的底層細節(jié)無關,也就是說,我們可以在保持上層結構不變的情況下,通過切換底層實現(xiàn)來修改數據訪問的具體機制。
3、資源管理和調度的分離
在數據庫操作中,資源的管理和調度是一個非常值得關注的主題。大多數系統(tǒng)的性能瓶頸往往并非集中在業(yè)務邏輯處理本身。DAO模式將數據訪問邏輯從業(yè)務邏輯中脫離出來,使得在數據訪問層實現(xiàn)統(tǒng)一的資源調度成為可能,通過數據庫連接池以及各種緩存機制的配合使用,往往可以在保持上層系統(tǒng)不變的情況下,大幅度提升系統(tǒng)性能。
4、數據抽象
DAO模式通過對底層數據的封裝,為業(yè)務層提供一個面向對象的接口,使得業(yè)務邏輯開發(fā)人員可以面向業(yè)務中的實體進行編碼。通過引入DAO模式,業(yè)務邏輯更加清晰,且富裕形象性和描述性。
只有注冊用戶登錄后才能發(fā)表評論。 | ||
![]() |
||
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
|
||
相關文章:
|
||
| |||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
27 | 28 | 29 | 30 | 1 | 2 | 3 | |||
4 | 5 | 6 | 7 | 8 | 9 | 10 | |||
11 | 12 | 13 | 14 | 15 | 16 | 17 | |||
18 | 19 | 20 | 21 | 22 | 23 | 24 | |||
25 | 26 | 27 | 28 | 29 | 30 | 31 | |||
1 | 2 | 3 | 4 | 5 | 6 | 7 |
常用鏈接
留言簿(1)
隨筆分類
隨筆檔案
關注blogs
- Anders小明的Blog
- DWR學習手冊
- IBM解決方案
- j2ee api
- JavaEye Java
- java技術賽迪網
- jdk詳解
- J道論壇
- mldn解惑
- robbin的自言自語
- SpringFramework中文論壇
- validation詳細解釋
- 一只小螞蟻
- 中國it實驗室
- 啊密果
- 當當網
- 林信良學習筆記
- 灰狐動力
- 鼠標的咖啡屋
搜索
最新評論

- 1.?re: 心中的那個她[未登錄]
- 如果心情能那么容易放開就好了,碰到她是我的緣分,但是她的緣分不知道在哪里。
- --王永慶
- 2.?re: 心中的那個她[未登錄]
- 兄弟,喜歡就大膽去追好了,就是因為喜歡才會有不愉快,如果想一輩子沒有這些煩惱,找一個可有可無的人就好了。這種事講的是緣分吧。別人對你好不好其實不太重要。放開心情就好了。
- --萍水相逢
- 3.?re: 心中的那個她
- 只能同甘不能共苦,就他媽算了吧,程序員也是人啊!我現(xiàn)在也很討厭女的不理解人情。
- --咖啡妝
- 4.?re: 難以割舍的那份情感
- 評論內容較長,點擊標題查看
- --王永慶
- 5.?re: 難以割舍的那份情感
- 評論內容較長,點擊標題查看
- --隔葉黃鶯