這塊內容是軟體工程課上學的,當時有乙個簡單的c++學生資訊管理系統課程設計但是沒有什麼深入的體會.一般我們把乙個軟體工程拆分成model,view,controller三個部分到後來繼續學習flask/python後端開發之後遇到問題才再次入學習思考.
時至今日,也只有比較粗淺的理解.
在當今前後端分離,前端工程化的浪潮下,mvc的功能在前後端也做了拆分.
就我目前所知來說.
一般後端僅需處理model和controller,也就是處理好資料庫和各項服務,提供介面即可.
view的任務,具體的頁面設計和路由是交給前端來實現的.
但這並不是說前端就不需要了解model,後端不需要配置路由**.
前端也是需要建立對應的model的,在呼叫api拿到data後,反序列化回乙個物件,並在此基礎上進行渲染.只是具體的資料修改通過api交給後端來處理了.
同樣的,後端也需要通過路由把具體的函式和url位址鏈結起來.可以理解為,後端不是沒有view,而是具體的渲染頁面的任務交給了前端,與此同時後端負責提供用於渲染view所需的api.
前後端的分離,使得專案可以前後端並行進行開發,大大提高了開發效率.
同時,前後端的分離也使得頁面邏輯和業務邏輯得到了拆分,降低了程式的耦合性,提高了專案的穩定性,可維護性.
而且,把使用者裝置的運算資源利用了起來,降低了服務端負擔.
mvc的分離則很好地劃分了資料,功能和介面,使得結構變得簡單直觀,各有所長的程式設計師也能在擅長的部分各司其職.因此,這樣的劃分也極大的地提高了程式的可擴充套件性.
在看了一些專案之後,我發現絕大多數後端程式都是按照mvc架構來開發的.但是每個人的理解都會多多少少有些不同.最後,我找到比較認可的一種是:
model:單純存放資料結構
service:提供具體小的功能模組,比如呼叫model建立乙個物件,再向資料庫寫入
controller:集合service中各個小的功能模組,組合成乙個大的功能,比如註冊的controller就可以拆分成對賬號密碼的驗證,新增使用者到資料庫,傳送啟用郵件等多個service的集合
與此同時,也需要通過route將controller和具體的url繫結起來,提供api
MVC模式小結
mvc模式是針對gui應用的軟體架構模式,他體現了關注點分離這樣乙個基本的設計方針,將乙個人機互動應用涉及的功能分為model,controller,view三部分,以下是它們相應的職責。以下是三者的互動圖 很多人認為controller僅是view和model之間的中介,其實不是這樣,view和m...
MVC設計模式小結
mvc是現行的常用設計模式之一。m model 模型,主要處理系統中的業務邏輯 v view 檢視,即使用者與系統進行互動的介面 c control 控制,它是連線模型和檢視的橋梁,根據互動資訊來給相應的功能板塊分配工作 優點 1 低耦合性 模型與檢視分離的形式使得整個系統很明顯的分為多個功能板塊,...
MVC原理小結
mvc即model,view,controller。是一種框架模式,使應用程式的輸入 處理 輸出分開 mvc原理 1.使用者發起請求,產生request 3.dispatcherservlet 將請求提交到controller,開始處理使用者的請求 4.controller呼叫處理類 xxservi...