mvc模式編程的好處和不足是什么
引子:mvc的好處
馬克- to-win:馬克 java社區(qū):防盜版實(shí)名手機(jī)尾號(hào): 73203。
馬克-to-win:上節(jié)中的第二部分是講從jsp表單提交數(shù)據(jù)插入數(shù)據(jù)庫(kù)的事情。這件事情,往極端里來講,用一個(gè)jsp也可以干成??梢韵胂蟮?,這個(gè)jsp必然巨大,代碼非常難維護(hù)。即使需求上有任何一點(diǎn)點(diǎn)變動(dòng),也需要重新打開這個(gè)巨大的jsp,進(jìn)行改動(dòng),無論是界面上,還是數(shù)據(jù)庫(kù)方面。在公司當(dāng)中,這還涉及不同的工作人員。如果是界面上需要改動(dòng),這涉及美工人員。程序方面需要改動(dòng),這涉及軟件工程師。當(dāng)項(xiàng)目越做越大,代碼量越來越大,維護(hù)起來越來越困難,公司的人員流動(dòng)和需求的經(jīng)常變動(dòng),造成了代碼維護(hù)起來更加困難。馬克-to-win:筆者在軟件公司任技術(shù)負(fù)責(zé)人時(shí),就有過親身體會(huì)。一個(gè)新需求過來,一個(gè)新人需要先讀懂老人的代碼,在這基礎(chǔ)上再改動(dòng)相關(guān)的部分。mvc模式開發(fā)就起到了相當(dāng)多的好作用。比如如果只是業(yè)務(wù)邏輯更改了,你只需要讀懂model部分的代碼,更不需要打開controller部分的文件。想象一下,你的前任,這個(gè)項(xiàng)目是用一個(gè)jsp寫的!!繼任跳樓的心都有。
mvc的不足
馬克-to-win:現(xiàn)在問題就來了。不斷進(jìn)取的軟件界馬上就意識(shí)到,隨著項(xiàng)目更大,mvc模式都已顯不夠,分工還需更細(xì)。比如把model部分再細(xì)化一下,分成好幾層,1)和數(shù)據(jù)源配置有關(guān)的叫數(shù)據(jù)源層(Data Source),在我下面的例子中就是DatabaseConn.java。2)和數(shù)據(jù)庫(kù)打交道的叫Dao層( Data Access Object)。3)處理業(yè)務(wù)邏輯的就是服務(wù)層(Service)。分工一細(xì),分層以后,每層的代碼量就很小。當(dāng)需求改變后,開發(fā)者所需閱讀的代碼量就會(huì)小得多。馬克-to-win:比如如果新的需求是把數(shù)據(jù)庫(kù)的登錄名改一下,如果你的項(xiàng)目只有一個(gè)jsp,這個(gè)jsp有一萬(wàn)行代碼,你起碼要讀相關(guān)的幾十行代碼不止,還擔(dān)心會(huì)出錯(cuò)!而分層以后,比如如果是數(shù)據(jù)庫(kù)連接的問題,你只需要檢查數(shù)據(jù)源層就可以了,其他的文件都沒必要打開。這樣幾乎沒有什么代碼的閱讀量,出錯(cuò)的風(fēng)險(xiǎn)也較低!