對MVC設計模式的簡單理解

MVC設計模式的理解

MVC是一種設計模式(Design pattern),也就是一種解決問題的思路和方法;

MVC是模型(Model), 視圖(View), 控制器(Controller) 3個單詞的縮寫,幾乎所有的web框架都是建立在MVC模式上。

模型(Model)

指數據模型,主要是數據、業務邏輯和業務規則;開發初期最重要的任務,該部分的代碼寫的好,後面就可改的少,開發快速。

以下是Model的幾個原則:

1. 數據、行為、方法是Model的主要內容;

2. 實際工作中,Model是代碼量最大、最複雜的地方,大量的業務邏輯都在這裡表示

3. Model提供的數據都是原始數據,也就是說不帶任何錶現層的代碼,比如在輸出的數據中添加html標籤,這是view層的工作;但是Model是可以提供有結構的數據的:數組結構、隊列結構、甚至其他的Model,這個不是表現層的格式,而是內存中的表現

Advertisements

4. 與輸出不同的是,輸入是可以帶有表現層格式的數據,比如文章的內容里可能帶有html標籤,Model一般都會這些輸入數據進行過濾、驗證、規範化等預處理。

5. 注意與Controller分開,Model是處理業務方面的邏輯,Controller只是簡單的協調Model和View之間的關係;只要是與業務有關的,就該放在Model裡面。好的設計,應當是胖Model,瘦Controller。

視圖(View)

指視圖,就是呈現給用戶一個界面,是Model的表現形式,也是手機用戶輸入的地方;

View主要負責顯示,一切跟顯示界面無關的東西,都不應該出現在這裡,因此View里一般不會出現複雜的判斷句、複雜的運算過程。

Advertisements

關於View的幾個原則:

1. 負責頁面顯示,以html為主

2. 一般沒有複雜的判斷句、複雜的運算過程,可以有簡單的循環語句、格式化語句。

3. 從不調用Model的寫方法,也是就是只會從Model內取數據,不會直接修改Model

4. 一般沒有準備數據的代碼,如查詢資料庫,組合成一定格式等,這些都是放在Controller裡面,然後分配給View;

也就是說View用到的數據,都是可以直接用的變數。

控制器(Controller)

指控制器,主要用來相應用戶請求,決定使用什麼師徒,用什麼數據來顯示。

Controller的幾個原則:

1. 處理用戶請求,因此,對於reqeust的訪問代碼應該放在Controller裡面,比如 $_GET $_POST 等。但僅限於獲取用戶請求數據,不應該對數據有任何操作或預處理,這些工作應該交由Models來完成。

2. 調用Models的讀方法,獲取數據,直接傳遞給視圖,供顯示。 當涉及到多個Model時,有關的邏輯應當交給Model來完成。

3. 調用Models的類方法,對Models進行寫操作。

4. 調用視圖渲染函數等,形成對用戶Reqeust的Response。

Advertisements

你可能會喜歡