1. 程式人生 > >對 MVC架構的理解

對 MVC架構的理解

在開發圖形介面應用程式的時候,為求更好的管理應用程式的複雜性,基於職責分離的思想會對應用程式進行分層,把管理使用者介面的層次稱為View,管理應用程式資料的層次稱為Model。

有了View和Model的分層,那麼就有了個問題:View如何同步Model的變更?

為了解決這樣的問題於是就有了MVC架構模式。

這裡需要注意:
1.Model指的是Domain Model,是應用程式對需要解決的問題的資料抽象,不包含應用的狀態,可以簡單理解為物件。
2.Model層不應該包含應用程式的業務邏輯,而是隻儲存資料結構和提供資料操作的介面。但是Model在進行資料操作時候也會涉及到相關的業務邏輯


所以這裡應該要注意把應用程式的業務邏輯與資料操作的業務邏輯做區別。
在MVC模式中Model應該包含資料操作的業務邏輯,而Controller包含的是應用程式的業務邏輯。

這兩種業務邏輯怎麼做區分呢?舉個例子,假如在登入過程中需要驗證使用者輸入的有效性和對密碼進行加密,那麼驗證使用者輸入的有效性就是應用程式的業務邏輯,需要在Controller來實現,而對密碼進行加密是對資料進行的操作,是屬於資料操作的業務邏輯應在Model實現。

MVC的依賴關係
MVC把應用程式分成View、Model層,Controller層。Controller的職責就是專門管理應用程式的業務邏輯。Model、View、Controller三個層次的依賴關係如下:
這裡寫圖片描述

MVC的呼叫關係
使用者的對View操作以後,View捕獲到這個操作,會把處理的權利交移給Controller,Controller接著會執行相關的業務邏輯,這些業務邏輯可能需要對Model進行相應的操作,當Model變更了以後,會通過觀察者模式通知View,View收到Model變更的訊息以後,會向Model請求最新的資料,然後重新更新介面。如下圖:
這裡寫圖片描述