MVVM實時呈現C S架構

2021-08-31 19:48:05 字數 1379 閱讀 6624

使用wpf推崇的mvvm模式,是mvc模式的一種變體。

以資料繫結為核心的思想,可以使得在開發中,資料組織變得十分便利。

這裡我向大家展示我在乙個專案中基於mvvm的實時呈現c/s架構設計,可以實現任何乙個客戶端修改資料,即立即在所有客戶端及資料持久層同步。

服務端:

服務端負責處理審編系統與資料庫通訊,同步各個客戶端編目資料,並且進行後台的核心業務邏輯處理。

【通訊層】:採用雙工模式通訊:

reviewserviceapi同步返回介面,每個客戶端連線上之後都會新建乙個例項,負責與該客戶端進行互動。客戶端成功登陸後會在服務端維護該session,並且在一定時間內沒有資料互動則自動過期session,釋放該客戶端占用的資源。其主要提供資料項的增、刪、改、查介面及業務介面(如登陸、退出等)

同時採用 訂閱者-發布者的c/s通訊模式,每個客戶端連入時均在服務端構建其偵聽器例項,由messagecenter進行管理,在資料項有修訂後,通過messagecenter向訂閱相關訊息的客戶端可靠的發布訊息。同時messagecenter也負責對過期的訂閱進行**。

【資料訪問層】:封裝對資料來源的訪問

資料來源可以以各種形式存在,目前以db+記憶體資料形式。

記憶體級別與相關管理器通訊,如watchermanager等。

【核心邏輯層】:封裝核心業務邏輯

包括片段合併觸發機制、合併演算法,編輯項鎖定等核心業務。

【工具】

包括日誌管理器、任務池等。

客戶端:

客戶端是編輯、審核人員的操作入口,與服務端通訊,完成編目、發布等操作,並且能夠多例項同步資料。採用mvvm設計模式進行介面、資料的解耦。

【通訊層】與服務端通訊

client對服務端介面進行適配,同時負責若干常用資料的快取。

listener是訂閱的偵聽器,偵聽服務端傳送的相關資料,進行資料的同步。

【資料實體層 model】原始資料維護者

用來維護與服務端同步的資料,其資料實體的具體資料結構完全對映服務端dal層維護的資料結構。

【介面顯示資料繫結層 viewmodel】

使用model構造介面繫結資料,並介面操作提供命令介面,進行model層的同步。

【介面層 view】

負責資料展示和使用者控制響應。對viewmodel層進行資料雙向繫結,同步重新整理。

非同步任務:

客戶端和服務端為了使得傳輸資料趨於平均化、非阻塞,均使用非同步任務方式。具體實現為需要進行通訊時將任務推入任務池,由後台執行緒負責任務池的處理。

以常見的update操作為例,下圖表示各模組通訊協作的時序

MVVM架構 目錄

回到佔佔推薦部落格索引 mvvm在概念上是真正將頁面與資料邏輯分離的模式,在開發方式上,它是真正將前台 開發者 js html 與後台 開發者分離的模式 asp,asp.net,php,jsp 在介紹它之前我們先來看一下mvp和mvc的定義 mvp是從經典的模式mvc演變而來,它們的基本思想有相通的...

架構之路 MVVM架構模式

model層就是職責資料的儲存 讀取網路資料 運算元據庫資料以及i o,一般會有乙個viewmodel物件來呼叫獲取這一部分的資料。view層做的僅僅和ui相關的工作,我們只在xml activity fragment寫view層的 view層不做和業務相關的事,也就是我們的activity 不寫和...

CS架構與BS架構

cs架構 c s client server 基於客戶端 伺服器 cs架構的優點就是基於客戶機和伺服器模式,大部分的運算是在客戶機上執行,從而提高一定的效率,但是也因為他在客戶機上執行,所以要安裝客戶端,也導致了軟體維護和公升級時的不方便,需要程式設計師親自進行公升級配置。舉例 qq聊天軟體。以及眾...