通過MVC模式將Web檢視和邏輯程式碼分離

發表於2008-05-19
本文為原創,如需轉載,請註明作者和出處,謝謝!

    MVC模式(Model-View-Controller)常被用在Web程式中。如Struts框架就是一個基於MVC模式的Web框架。所謂MVC模式,就是將檢視(也就是客戶端程式碼,包括html、javascript等)和模型(和資料庫及業務邏輯相關的Java程式碼)分開。並通過控制器將兩者聯絡起來。這樣做的好處可以使客戶端開發人員和服務端開發人員的工作儘量分開,以使他們之間的干擾降到最低。
    雖然象Struts這樣的框架可以很好地Model和View分離。但是對於客戶端的程式碼,仍然存在著一定的檢視和邏輯混合的現象。如下面的程式碼所示:



   
        
        
        
        function fun1(obj) {  }
        function fun2() { }
                
   
   
        
        
         
   


    從上面的程式碼可以看出,html程式碼和javascript程式碼都混在了同一個html檔案中。在一般情況下,客戶端的介面是由美工設計的,而對於javascript程式碼,美工一般是不參與實現的。這些程式碼一般也應屬於業務邏輯程式碼的一部分,雖然它們都在客戶端執行,但可能也會處理一定的業務邏輯,如驗證資料的正確性。尤其在AJAX應用中,在客戶端還會通過http協議從服務端獲取資料。這樣就和業務邏輯繫結得更緊了。因此,如果將用於描述介面的html和用於處理業務邏輯的javascript(渲染介面的javascript除外)混在一起,非常不利於團隊中負責這兩方面的人員進行協調。

    最好的可能就是將這些javascript程式碼從html程式碼中分離。也許有很多人馬上就會想到,將這些javascript放到.js檔案中,然後使用
標籤引用一下就ok了。程式碼如下:<br> <br> fun.js檔案<br> <br> function fun1(obj) { ... }<br> <br> function fun2() {... }<br> <br> <br> index.html檔案<br> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><br> <html><br> &nbsp; &nbsp; <head><br> &nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;<title></title><br> &nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;<meta. http-equiv="Content-Type" c><br> <script. type="text/javascript" src="fun.js"><br>

   
   
        
        
         
   

相關文章