具體pdf的下載地址:
分離數(shù)據(jù)庫(kù)訪問(wèn),UI和域邏輯
http://wingel.javaeye.com/topics/download/ce15b67a-1df7-4a75-8f03-1a505aca35d8
請(qǐng)從鏈接中下載,下面的內(nèi)容只是摘要。
處理三種類別的代碼都混在了一起:
?? 1.UI: JDialog, JTextField, 響應(yīng)用戶事件的代碼。
?? 2.數(shù)據(jù)庫(kù)訪問(wèn): Connection, PreparedStatement, SQL statements, ResultSet 等等。
?? 3.域邏輯: 參會(huì)者的默認(rèn)id,參會(huì)者的名字必填,所屬地區(qū)的限制等等。域邏輯又稱為“域模型”或者“業(yè)務(wù)邏輯”。
這三個(gè)不同類別的代碼混在一起,會(huì)造成下面的問(wèn)題:
1.代碼很復(fù)雜。
2.代碼很難重用。如果我們想創(chuàng)建一個(gè)EditParticipantDialog,讓用戶更改參會(huì)者的信息,我們就想重用部分域邏輯(比如,地區(qū)的限制)。但實(shí)現(xiàn)這部分域邏輯的代碼跟AddParticipantDialog混在了一起,根本不能重用。如果是在一個(gè)web系統(tǒng)中,就更難重用了。
3.代碼很難測(cè)試。每次要測(cè)這樣的一段代碼,我們都要建一個(gè)數(shù)據(jù)庫(kù),還要通過(guò)一個(gè)用戶操作界面來(lái)測(cè)試。
???? 4.如果數(shù)據(jù)庫(kù)表結(jié)構(gòu)更改了,AddParticipantDialog這個(gè)類,還有其他的很多地方都要跟著更改。
5.它導(dǎo)致我們一直在考慮一些低層的太細(xì)節(jié)的概念,比如數(shù)據(jù)庫(kù)字段,表的記錄之類的,而不是類,對(duì)象,方法和屬性這一類的概念。或者說(shuō)白了一點(diǎn),一直在考慮怎么往數(shù)據(jù)庫(kù)里面裝數(shù)據(jù),而沒有了面向?qū)ο蟮母拍睿瑳]有了建立業(yè)務(wù)模型的思維。
因此,我們應(yīng)該將這三種類別的代碼分離開(UI,數(shù)據(jù)庫(kù)訪問(wèn),域邏輯)。????????
只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。 | ||
![]() |
||
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問(wèn)
管理
|
||
相關(guān)文章:
|
||