成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

軟件架構設計:B/S層次架構之MVC/MVP/MVVM

開發 架構
MVC中存在的問題就是視圖可以直接操作模型,從而導致跨層級滴哦安永,而MVP的提出,正是解決這個跨層級的問題的。它是MVC的一直變種。

層次架構風格從之前的兩層C/S到三層C/S,然后演化為三層B/S架構,三層B/S架構之后仍然在往后面演化,我們來看一下層次架構演化過程中都有了哪些演化的架構風格呢?

而我們先簡單了解一下之前的層次架構風格中分層的各個層次的作用。

  • 表現層:由于用戶進行交互,比如MVC,MVP,MVVM其實都是與用戶頁面打交道的一層
  • 中間層:比如我們的接口層或者業務邏輯層,一般主要用于處理業務邏輯,比如我們的service層
  • 數據訪問層:ORM(對象關系映射),比如說平常的hibernate或mybatis.就是把一個個對象和關系表的數據通過映射關系綁定起來,讓我們把數據庫操作映射到這個對象的操作上來。。
  • 數據架構層(其實就是數據庫)

1、MVC架構風格

MVC分別是什么?

  • Model(模型):是應用程序中用于處理應用程序數據邏輯的部分。通常模型對象負責在數據庫中存取數據。
  • View(視圖):是應用程序中 處理數據顯示的部分,通常視圖是依據模型數據創建的。
  • Controller(控制器):是應用程序中處理用戶交互的部分。通常控制器負責從視圖讀取數據,控制用戶輸入,并向模型發送數據。

在J2EE體系中對應關系為:

  • Model(模型):Entity Bean, Session Bean
  • View(視圖):JSP
  • Controller(控制器):Servlet

在SpringBoot體系中

  • Model(模型):也就是我們的Entity
  • View(視圖):模板頁面,如果是JSON數據表示省去了View這個層次,返回JSON數據交給前端自己處理數據并渲染即可
  • Controller(控制器):Controller,其實本質上還是Servlet

主動MVC和被動MVC

細節其實不需要我們去了解,但是有主動型和被動型需要我們了解。

動作解讀(了解MVC直接如何交互)

  • 1、客戶做出某種動作,比如點擊某個按鈕,View接收到這個動作
  • 2、然后把這個動作傳遞給Controller層級
  • 3、然后把這個動作繼續傳遞給Model,Model來處理數據的業務邏輯。
  • 5、處理完畢之后,把數據的更改反饋給View層
  • 6、View層再將這個修改再頁面上渲染,從而反饋給客戶
  • 4、視圖可以直接和模型進行交互,直接操作模型獲取數據的操作,因此這和操作對于標準層次風格來說,這就是跨層次的對接了,所以這個耦合對比較高。

MVC中存在的問題就是視圖可以直接操作模型,從而導致跨層級滴哦安永,而MVP的提出,正是解決這個跨層級的問題的。它是MVC的一直變種。

2、MVP架構風格

什么是MVP?

  • MVP是MVC的變種
  • MVP實現了View和Model之間的解耦(View不直接使用Model,修改View不會影響Model)
  • MVP更好的支持單元測試, 因為邏輯在P中,可以脫離View來測試邏輯,可以將一個P用于多個V,而不需要修改P的邏輯。
  • MVP中V要處理界面事件,業務邏輯在P中,MVC中界面事件交由C處理。

其實現在我們前后端分離之后,如果在不使用數據雙向綁定的基礎上,就是典型的MVP架構風格,如果使用了數據雙向綁定,那么就是MVVM架構風格了。

3、MVVM架構風格

MVVM跟MVP的操作思想其實沒有一些本質性的區別了,只是多實現了一個雙向數據綁定技術。

4、富互聯網應用(RIA)

  • RIA結合了C/S架構反應速度快、交互性強的有點,以及B/S架構傳播范圍廣以及容易傳播的特性。
  • RIA簡化并改進B/S架構的用戶交互
  • 數據能夠被緩存在客戶端,從而可以實現一個比基于HTML的響應速度更快且數據往返與服務器的次數更少的用戶界面。

其實簡單來說,就是我們在打開頁面時,將一些常用的數據加載到本地,然后減少與服務器的交互次數,從而提升訪問速度。

主要應用于那種頁面動畫較多的,比游戲類的小程序,一般都會這樣做,比如先加載資源,然后初始化配置,再加載某某場景數據等。就是為了后面直接訪問本地更快些。

5、小結

主要說明的層次架構中表現層的架構演化,后面還有SOA,微服務等架構風格,我們慢慢了解,學無止境,加油!

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2018-10-29 11:41:22

架構MVCAndroid

2023-10-20 13:21:55

軟件設計模式架構

2017-04-01 08:30:00

MVCMVPMVVM

2017-03-31 20:45:41

MVCMVPMVVM

2023-04-13 08:23:28

軟件架構設計

2013-09-02 17:46:41

MVC架構設計MVC架構設計

2012-06-07 10:45:12

軟件架構設計原則

2009-02-01 10:17:19

Java架構設計設計模式

2024-09-18 09:04:33

架構模式查詢

2015-06-02 04:17:44

架構設計審架構設計說明書

2018-03-21 16:19:40

MVCMVPMVVM

2017-05-12 16:50:14

GUI應用程序

2015-01-27 15:25:53

MVVM

2015-06-02 04:34:05

架構設計

2018-07-10 10:00:15

Android架構MVC

2023-04-28 08:23:51

軟件架構設計

2009-06-22 14:48:21

DRY架構設計

2014-05-19 10:08:36

IM系統架構設計

2023-03-31 13:31:45

2016-12-19 11:17:48

架構 MVC
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产在线播 | 国产精品视频网 | 一级片在线观看 | 91大神xh98xh系列全部 | 国产一区二区三区免费观看视频 | 羞羞网站在线观看 | 久久综合一区二区 | 国产精品成人久久久久a级 久久蜜桃av一区二区天堂 | 亚洲毛片在线观看 | 久久精彩视频 | 久久久久国产精品一区二区 | 99精品网| 美女久久久久 | 日本成人一区二区 | www.色综合| 精品国产成人 | 亚洲欧美国产精品久久 | 久久亚洲综合 | 精品国产不卡一区二区三区 | 国产视频中文字幕在线观看 | 成人国产在线观看 | 免费在线观看一级毛片 | 蜜桃黄网 | 欧美日韩亚洲国产 | 日韩欧美视频 | 亚洲成人av在线播放 | 一级a毛片 | 欧美日韩一二区 | 亚洲一区视频在线播放 | 日本欧美国产 | 欧美一级www片免费观看 | 懂色av一区二区三区在线播放 | 一区中文 | 久久精品国产一区 | 久久99精品国产麻豆婷婷 | 97超碰在线播放 | jav成人av免费播放 | 黄色av一区 | 一区二区视屏 | 国产精品久久久久久久久久免费 | 国产一区视频在线 |