深入理解MVC模式

來源:互聯網
上載者:User

標籤:維護   標準化   可維護性   ret   變化   模式   標準   play   擴充   

一,什麼是MVC模式

該模式是一種軟體設計典範,他把軟體系統劃分為三個基本部分:模型層(Model)、視圖層(View)、控制器(Controller)

*Model(模型)表示應用程式核心(比如資料庫記錄列表)

*View(視圖)顯示資料(資料庫記錄)

*Controller(控制器)處理輸入(寫入資料庫記錄)

Model(模型)是應用程式中用於處理應用程式資料邏輯的部分,通常模型對象負責在資料庫中存取資料

View(視圖)是應用程式中處理資料顯示的部分,通常視圖是依據模型資料建立的

Controller(控制器)是應用程式中處理使用者互動的部分,通常控制器負責從視圖讀取資料,控制使用者輸入,並向模型發送資料

二,MVC模式的目的

第一,其目的是實現程式的動態設計,使後續程式的修改和擴充簡化,並且能夠使程式的某一部份的重複利用成為可能

第二,有助於管理複雜的應用程式,我們可以在一個時間專門關注一個方面,同事也讓應用程式的測試更加容易

第三,簡化了分組開發,不同的人員可同時開發視圖、控制器邏輯、模型邏輯,加快了開發速度

三、MVC工作原理圖

註:什麼是Javabean?

JavaBean:它是一個簡單的Java類。這個類中擁有get或set方法即可,但要求這個類必須有一個公開的空參數的建構函式。並擁有一些簡單的邏輯參與。但是在實際應用中,經常只需要類中添加get或set方法的簡單Java類。在開發中經常把這樣的類稱為JavaBean對象或者實體類對象。這樣的類開發中經常書寫在domain或者beans包下。舉例如下:

public class User {

private String id;

private String username;

private String password;

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

}

四,MVC模式的優點

第一,開發人員可以只關注三層中的其中的某一層

第二,可以很容易的用新的實現來替換原有層次的實現,可維護性提高了

第三,可以降低層與層之間的依賴,耦合性降低了

第四,有利於標準化和軟體工程化管理

第五,利於各層邏輯的複用,重用性提高了

五,MVC模式的缺點

第一,增加了系統結構和實現的複雜性

對於簡單的介面,嚴格遵循MVC,使模型、視圖與控制器分離,會增加結構的複雜性,並可能產生過多的更新操作,降低運行效率。

第二,不適合小型或者中等規模的應用程式

花費大量時間將MVC應用到規模並不是很大的應用程式通常會得不償失

第三,視圖與控制器串連的過於緊密

視圖與控制器是相互分離,但卻是聯絡緊密的組件,視圖沒有控制器的存在,其應用是很有限的,反之亦然,這樣就妨礙了他們的獨立重用。

第四,視圖對模型資料的低效率訪問

依據模型操作介面的不同,視圖可能需要多次調用才能獲得足夠的顯示資料。對未變化資料的不必要的頻繁訪問,也將損害操作效能。

深入理解MVC模式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.