1. 程式人生 > >MVC架構簡介

MVC架構簡介

本篇部落格打算簡單介紹一下MVC是什麼,為接下來寫一篇Spring MVC和Struts2的文章做一下鋪墊。

MVC是一種架構設計模式,是一種設計理念。是為了達到分層設計的目的,從而使程式碼解耦,便於維護和程式碼的複用。MVC是3個單詞的縮寫,全稱:Model-View-Controller(模型-檢視-控制器)。

舉一個例子,MVC就好比我們的鞋櫃。當沒有鞋櫃的時候,鞋子是這樣擺放的:

有了鞋櫃之後,我們的鞋子是這樣擺放的:

一眼就能看出,有了鞋櫃之後,鞋子的擺放明顯的整齊和有序很多,這樣也很方便我們找到自己想穿的鞋子,不用將大量的時間花在尋找鞋子上。如果把我們的成千上萬行程式碼和各種複雜的業務邏輯看作是各式各樣的鞋子,那我們的MVC就是鞋櫃。MVC讓你的程式碼結構更加清晰明瞭。

沒有使用MVC的時候,我們的程式碼結構如下:

上圖那一坨“剪不斷、理還亂”的亂麻就是你沒有使用分層設計的程式碼結構。如果這時讓你找你程式碼中的某一段邏輯估計是很費勁的,更別說將程式碼中的某一段程式碼進行復用或者替換了。

使用MVC分層設計之後,我們的程式碼結構如下:

上面的圖示可能有點誇張,但是這樣可能更好的理解。MVC其實就是提供一種規則,讓你把相同型別的程式碼放在一起,這樣就形成了層次,從而達到分層解耦、複用、便於測試和維護的目的。

以上說了一堆,其實就是想讓大家理解MVC是什麼,有什麼作用。接下來,我們結合我們實際開發中的程式碼型別來解釋一下MVC。

1、Model

模型層,可以簡單理解就是資料層,用於提供資料。在專案中,(簡單理解)一般把資料訪問和操作,比如將物件關係對映這樣的程式碼作為Model層,也就是對資料庫的操作這一些列的程式碼作為Model層。比如程式碼中我們會寫DAO和DTO型別的程式碼,那這個DAO和DTO我們可以理解為是屬於Model層的程式碼。

2、View

檢視層,就是UI介面,用於跟使用者進行互動。一般所有的JSP、Html等頁面就是View層。

3、Controller

控制層,Controller層的功能就是將Model和View層進行關聯。比如View主要是顯示資料的,但是資料又需要Model去訪問,這樣的話,View會先告訴Controller,然後Controller再告訴Model,Model請求完資料之後,再告訴View。這樣View就可以顯示資料了。如下圖:

關於Spring MVC和Struts,與MVC的關係:

大家還記得在上面我舉過的一個例子,MVC好比鞋櫃。那Spring和Struts2只是不同牌子的鞋櫃而已。並且Spring MVC和Struts2只是一個協助程式設計師更好實現MVC分層架構的框架而已。就是說,我們實現MVC不一定非要使用Spring或者struts2,自己按照MVC的理解,自己完成自己程式碼的分層也行。就好比自己在家用木棍自己製作一個鞋櫃也照樣可以把鞋子擺放整齊,當然,這樣做的話首先要你有這樣的一個木工技術。我們沒有必要為了一個鞋櫃,還要自己去學習木工技術,所以最好最快的方式就是去超市買一個鞋櫃。

我們直接使用Spring mvc或者struts2來實現MVC,就是我們直接使用別人做好的東西,直接用。快捷、省時、省事、而且質量好。

最後:

其實現在除了MVC架構之外,還有MVP、MVVM等。

在實際專案中MVC更好的實現應該還多一個service層,用來處理業務邏輯。如下:

其中多出來的Service層,主要是用來處理複雜的業務邏輯,這樣結構層次更加鮮明和簡介。

相關推薦

MVC架構簡介及其測試策略

輸入 mvc 強行 嘗試 部分 img 基本架構 fire 有用 最近在WEB端測試工作中陷入了瓶頸,單純的手動功能測試在沒有成熟的代碼規範之前還是很容易坑的,WEB自動化測試一時半會還沒有什麽進展,所以決定先學習一下網站用的MVC架構,跟著教程寫了一個小網站,大概也找

MVC架構簡介

本篇部落格打算簡單介紹一下MVC是什麼,為接下來寫一篇Spring MVC和Struts2的文章做一下鋪墊。 MVC是一種架構設計模式,是一種設計理念。是為了達到分層設計的目的,從而使程式碼解耦,便於維護和程式碼的複用。MVC是3個單詞的縮寫,全稱:Model-View-C

Spring 框架基礎(06):Mvc架構模式簡介,執行流程詳解

本文原始碼:GitHub·點這裡 || GitEE·點這裡 一、SpringMvc框架簡介 1、Mvc設計理念 MVC是一種軟體設計典範,用一種業務邏輯、資料、介面顯示分離的方法組織程式碼,將業務邏輯聚集到一個元件裡面,在改進和個性化定製介面及使用者互動的同時,不需要重新編寫業務邏輯,MVC分層有助於管理和架

Unity的MVC架構

其中 交互 動態生成 sce 生成 動畫 ima 不可見 model類 M層: Model類 所有poco對象存取 需要存取的數據均設計為POCO 可擴展為本地和網絡兩種模式 基於Json格式 V層: 每個場景的SceneManager 包括動態生成prefab G

【一】SCCM架構簡介

sccm架構 簡單來說,System Center Configuration Manager(SCCM/ConfigMgr)由SMS(Systems Management Server)發展而來,其作為一款針對企業級的客戶端,服務器管理平臺,提供迅速有效的配置管理、軟件分發、系統部署、軟硬件資產等完善

Struts2筆記01——基礎MVC架構(轉)

ima pan als 視圖 進行 tex www 執行 lsp 原始內容:https://www.tutorialspoint.com/struts_2/basic_mvc_architecture.htm Apache Struts 2是用來創建企業級Java

MVC架構學習之EasyFirst——快點誇我愛學習~

ima cross ber isa ren aov free ecc nba %E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A8%8B%E5%BA%8F%E7%9A%84%E6%80%9D%E7%BB%B4%E9%80%BB%E8%BE%91%209%20-

JSP MVC架構

entity man 調用方法 web服務器建立 數據庫服務 pri 自定義標簽 分發 服務器 關於JavaBean: JavaBean是保存數據的實體,通常與數據庫中的表對應,也稱為POJO, entity, domain, 如 Person, User等. JavaBe

(二)Struts2 MVC架構

bsp 交互 jsp nbsp ron 整合 之間 軟件 求和 模型(Model)-視圖(View)-控制器(Controller),通常簡稱MVC,是一種開發web應用程序的軟件設計模式。該軟件設計模式由以下三部分組成:   模型——屬於軟件設計模式的底層基礎,主要負責

OSI七層和TCP/IP五層網絡架構簡介

eee miss sage use tft size osi art 地址解析 OSI七層和TCP/IP五層網絡架構簡介 一.基本概念   OSI是Open System Interconnect的縮寫,意為開放式系統互聯。   ARP(Address Resolution

spring cloud 微服務架構 簡介

session 進行 tell div apach 後來 tro 最新版 maven Spring Cloud 1、 Spring Cloud 簡介 Spring Cloud是在Spring Boot的基礎上構建的,用於簡化分布式系統構建的工具集,為開發人員提供快

隨機獲得MySQL數據庫中100條數據方法 駕照題庫項目 MVC架構 biz業務層的實現類 根據考試類型rand或order通過dao數據訪問層接口得到數據庫中100或全部數據

mysql數據庫 imp swift mvc架構 als new util pack gson package com.swift.jztk.biz; import java.util.Collections; import java.util.Comparator;

ACE-Streams架構簡介及應用

系統 manager ask 循環 正數 rec img tchar 示例 一概述 Streams框架是管道和過濾構架模式的一種實現,主要應用於處理數據流的系統。其實現以Task框架為基礎。Task框架有兩個特性非常適用於Streams框架:一是Task框架可用於創建獨立線

近乎產品MVC架構介紹-多租戶模式

.cn cnblogs http logs img jin www. pro targe 近乎產品下載地址:http://www.jinhusns.com 近乎產品MVC架構介紹-多租戶模式

Spring Cloud分布式微服務雲架構簡介

spring spring boot spring cloud java 代碼結構 Spring Cloud是一系列框架的有序集合。利用Spring Boot的開發模式簡化了分布式系統基礎設施的開發,如服務發現、註冊、配置中心、消息總線、負載均衡、斷路器、數據監控等(這裏只簡單的列了一部分

近乎產品MVC架構整體設想

font ont span -s mvc 圖片 load ref 16px 演示產品下載地址:http://www.jinhusns.com 近乎產品MVC架構整體設想

巡風代碼架構簡介以及Flask的項目文件結構簡介

shel 執行 creat 大量 server aid 檢查 架構 jenkin 一、巡風:   巡風是一款什麽東西,想必安全同行都不陌生吧。用它作為內網漏洞掃描管理架構是一種很好的選擇,掃描快,開源,還可自己編寫符合規則的POC直接放入相應目錄來擴展。今天下午趁著有點時間

MVC架構介紹-Model的開發

jin class base ref mod tap mode 創建 默認 需要在派生類實現lEntity,IEntity的兩個屬性EntityId和IsDeleteInDataBase,以顯式方式實現 Model的所有屬性存入數據庫以前都要確保有相應的默認值,不要依賴數

#01# SCCM架構簡介

SCCM架構SCCM架構簡介 簡單來說,System Center Configuration Manager(SCCM/ConfigMgr)由SMS(Systems Management Server)發展而來,其作為一款針對企業級的客戶端,服務器管理平臺,提供迅速有效的配置管理、軟件分發、系統部署、軟硬

MVC架構介紹——自運行任務

每天 span 下載地址 時間格式 inf HR nload 架構 記錄 實例產品基於asp.net mvc 5.0框架,源碼下載地址:http://www.jinhusns.com/Products/Download 通過自運行任務來調度及執行程序中需要定時觸發或處理