mvc模式編程的好處和不足是什么

引子:mvc的好處
馬克- to-win:馬克 java社區(qū):防盜版實名手機(jī)尾號: 73203。
馬克-to-win:上節(jié)中的第二部分是講從jsp表單提交數(shù)據(jù)插入數(shù)據(jù)庫的事情。這件事情,往極端里來講,用一個jsp也可以干成??梢韵胂蟮剑@個jsp必然巨大,代碼非常難維護(hù)。即使需求上有任何一點點變動,也需要重新打開這個巨大的jsp,進(jìn)行改動,無論是界面上,還是數(shù)據(jù)庫方面。在公司當(dāng)中,這還涉及不同的工作人員。如果是界面上需要改動,這涉及美工人員。程序方面需要改動,這涉及軟件工程師。當(dāng)項目越做越大,代碼量越來越大,維護(hù)起來越來越困難,公司的人員流動和需求的經(jīng)常變動,造成了代碼維護(hù)起來更加困難。馬克-to-win:筆者在軟件公司任技術(shù)負(fù)責(zé)人時,就有過親身體會。一個新需求過來,一個新人需要先讀懂老人的代碼,在這基礎(chǔ)上再改動相關(guān)的部分。mvc模式開發(fā)就起到了相當(dāng)多的好作用。比如如果只是業(yè)務(wù)邏輯更改了,你只需要讀懂model部分的代碼,更不需要打開controller部分的文件。想象一下,你的前任,這個項目是用一個jsp寫的?。±^任跳樓的心都有。

mvc的不足

馬克-to-win:現(xiàn)在問題就來了。不斷進(jìn)取的軟件界馬上就意識到,隨著項目更大,mvc模式都已顯不夠,分工還需更細(xì)。比如把model部分再細(xì)化一下,分成好幾層,1)和數(shù)據(jù)源配置有關(guān)的叫數(shù)據(jù)源層(Data Source),在我下面的例子中就是DatabaseConn.java。2)和數(shù)據(jù)庫打交道的叫Dao層( Data Access Object)。3)處理業(yè)務(wù)邏輯的就是服務(wù)層(Service)。分工一細(xì),分層以后,每層的代碼量就很小。當(dāng)需求改變后,開發(fā)者所需閱讀的代碼量就會小得多。馬克-to-win:比如如果新的需求是把數(shù)據(jù)庫的登錄名改一下,如果你的項目只有一個jsp,這個jsp有一萬行代碼,你起碼要讀相關(guān)的幾十行代碼不止,還擔(dān)心會出錯!而分層以后,比如如果是數(shù)據(jù)庫連接的問題,你只需要檢查數(shù)據(jù)源層就可以了,其他的文件都沒必要打開。這樣幾乎沒有什么代碼的閱讀量,出錯的風(fēng)險也較低!