MVC架構是什麼?認識Model | mvc是什麼
在應用程式開發的領域裡,相當重視「關注點分離(separationofconcerns,SOC)」的設計原則,從字面上的意思,就是把整個應用程式分拆成不同功能層(layer)或程式碼模組(module),每個區塊有各自的關注點,彼此分工合作。當我們把關注點分離的概念落實到軟體架構(architecturalpattern)時,最常見的分工是把「管理資料的功能」和「呈現視覺的功能」分離。這裡會介紹一個很常用的設計模式叫作MVC設計模式,在這個模式裡,會把軟體分成Model、View、Controller三大功能層。每一次request/response週期的背後,都由這三大功能層來合作完成。...
在應用程式開發的領域裡,相當重視「關注點分離 (separation of concerns, SOC) 」的設計原則,從字面上的意思,就是把整個應用程式分拆成不同功能層 (layer) 或程式碼模組 (module),每個區塊有各自的關注點,彼此分工合作。
當我們把關注點分離的概念落實到軟體架構 (architectural pattern) 時,最常見的分工是把「管理資料的功能」和「呈現視覺的功能」分離。這裡會介紹一個很常用的設計模式叫作 MVC 設計模式,在這個模式裡,會把軟體分成 Model、View、Controller 三大功能層。每一次 request/response 週期的背後,都由這三大功能層來合作完成。
什麼是 MVC?Model、View、Controller 的區分,是希望能把應用程式的內部運作歸納成不同的部門,讓每個部門各自負責不同的關注點。具體的行為是「把不同意義的程式碼放在不同的檔案裡」。
ModelModel 常譯為「模型」,負責和資料庫溝通。這裡我們要先注意:應用程式和資料庫是兩個不同的東西,在應用程式裡想要做「新增/瀏覽/修改/刪除」的動作,就需要先有 Model 層幫忙去資料庫裡取出必要的資料,把資料放進應用程式裡的某個程式物件,然後才能用 JavaScript[1] 去操作該物件。
這種放資料、與資料庫連動的物件,會被稱為 Model 物件,由 Model 層來統一管理。
Model 管理的功能層被稱做「邏輯層」,更明確一點說,是和「商業邏輯」有關的功能,例如:
電商網站:
會員購物有九折、訂單超過一定的金額免運費 檢查登入帳號的類型,並依此開放不同權限社交網站:判斷使用者彼此之間的友好程度
To-do List:過了期但沒被執行的 to-dos 不能被刪除
這些邏輯出自於產品本身的需求或是規則。它們是獨立於網頁介面的商業邏輯,如果之後又另外開發了如手機 App 等相關應用程式,這些商業邏輯在大部分情況是通用的。和這些邏輯相關的程式碼應該被分類到對應的 Model 檔案裡。
Vi...