999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

DDMVVM:領域驅動的MVVM設計模型研究

2018-06-14 05:47:04王躍
數字技術與應用 2018年3期
關鍵詞:模型系統設計

王躍

(四川大學 計算機學院,四川成都 610065)

MVVM模型,是由微軟開發人員為了降低復雜用戶界面程序的開發復雜性而提出的一種前端設計模式[1]。作為MVC經典模型的擴展、升級,MVVM實現了視圖層(View)與數據模型層(Model)的完全解耦,可以使系統開發者和設計者完全獨立、并行地工作。因為MVVM的諸多優點,目前非常多的主流用戶界面程序開發平臺都采用該模型。

但在實際應用程序開發過程中,我們發現,采用傳統MVVM模型進行設計開發的程序不能很好地適應軟件需求變更,也不能準確、完整地實現需求復雜性較高的系統[2]。分析原因可知,MVVM模型的關注點是業務數據,是數據驅動的開發模式,并沒有從業務領域解決開發人員與領域專家之間的溝通問題。

對此,本文在用戶界面程序MVVM模型中,加入領域驅動設計的思想,提出了領域驅動的MVVM架構設計模型。將軟件分析與設計的關注點引導到業務上來,使用領域模型作為分析與設計的通用語言(Ubiquitous Language)。領域驅動的MVVM模型,以領域模型為核心,指導相關人員以領域驅動的思想進行系統分析、設計、開發工作,形成了統一的系統語言(Ubiquitous Language),使最終實現的軟件真正滿足需求。

1 相關工作

本章1.1節和1.2節分別介紹了MVVM模型和領域驅動設計,為下文提出領域驅動的MVVM架構模型奠定了理論基礎。

1.1 MVVM模型

MVVM中很重要的一項技術,即“數據綁定(Data Binding)”技術[3]。數據綁定技術實現了View與Model的完全解耦。其中View與ViewModel是一一對應的,業務邏輯保存在ViewModel中,作為領域數據對象的Model是“貧血”模型。MVVM架構沒有從整體業務領域的交互方面進行充分設計,當涉及多個領域對象交互時,會出現多個ViewModel互相調用、軟件邏輯混亂的情況。因此,隨著業務需求越來越復雜,業務領域內部關聯性的提高,軟件分析、設計、開發的復雜性都會提高[4]。

1.2 領域驅動設計

Eric Evans將領域驅動設計架構分為四層:用戶界面層、應用層、領域層和基礎設施層[1]。

其中,領域層為業務軟件的核心。負責表達業務概念、業務狀態信息及業務規則。領域層包含領域模型。領域驅動設計中,領域模型是由基本的模型元素構成。Eric Evans 提出了6種領域模型元素:實體、值對象、聚合、領域服務、工廠和倉儲。其中,實體、值對象和聚合為領域對象,包含了領域業務數據和流程,即整個領域知識。

2 領域驅動的MVVM設計模型

在標準MVVM模型基礎上,本文引入了領域驅動設計的思想。使得領域驅動的MVVM設計模型(DDMVVM)既繼承了MVVM模型優點,又遵循領域驅動設計思想。

圖1 MVVM架構各層結構

2.1 DDMVVM整體架構模型

本文提出的DDMVVM模型在需求獲取、系統設計階段,能夠根據客戶需求,準確、完整地獲取領域知識,并正確地抽象出領域模型,實現領域模型中各要素之間正確的依賴、分治。領域專家、設計人員、開發人員以以領域模型作為“通用語言”(Ubiquitous Language)進行溝通,不斷地迭代開發、優化領域模型[5][6]。

DDMVVM的系統架構,在遵循領域驅動設計分層架構基礎上,結合用戶前端程序開發的MVVM架構層次要求,實現了DDMVVM模型整體架構的設計。

如圖2所示,將DDD的各模型元素與MVVM三層做映射。分別在View、ViewModel和Model層,實現領域驅動的模型元素。在領域層即完成業務領域的邏輯處理能力[3]。

其中,“Repository倉儲”,即為與后端程序交互層,其主要功能為:1.將領域層數據傳到后端,進行持久化;2.響應“領域層”請求,從后端程序獲取數據作為領域數據。

對照“圖1 MVVM整體架構圖”,DDMV VM的改進之處:

(1)DDMVVM將領域相關的業務邏輯放在了“Model層”,即業務邏輯分布在各自領域對象中,實現了“充血模型”。

(2)“ViewModel層”作為協調角色存在,負責協調相關聯的多個領域對象處理;不保存領域相關業務邏輯代碼,只保存系統流轉狀態;MVVM中的“數據綁定”和“命令”技術,由“ViewModel層”實現。

(3)“View層”不需要實現與Model層關聯的邏輯,由“ViewModel層”實現View與Model的一對一或多對一關聯。

(4)Model層作為核心,實現了“充血”的Model層。

(5)工廠和倉儲位于模型層,分別負責領域對象創建和管理工作。

這樣,避免了標準MVVM模型中出現的因業務邏輯交互而出現的邏輯混亂的情況。

圖2 DDMVVM模型整體架構圖

圖3 DDMVVM Framework框架結構示意圖

2.2 DDMVVM領域模型設計

DDD提供了戰略設計和戰術設計兩種領域模型設計方式。

戰略設計幫助我們從更高的宏觀層面把握整體業務領域,正確的劃分邏輯上相互獨立的子領域,并按照“一個子領域對應一個BC”的標準,為每個子領域定義對應的一個BC。在子領域內,使用通用語言明確定義BC邊界內各個概念、術語、定義。

在限界上下文中,使用戰術設計方法,設計實現領域模型,創建領域模型中的各個構成元素,以表示子領域中的所有領域概念。根據Eric Evans提出的領域模型構成元素,DDMVVM模型的設計,也由6種元素構成:實體、值對象、聚合、領域服務、工廠和倉儲。

3 模型實現

DDMVVM模型可以有效指導相關人員以領域模型為核心,進行系統分析、設計和開發工作。本文不僅提出了DDMVVM模型,而且以該模型為指導,在移動開發平臺下實現了一個具體的開發框架DDMVVM Framework。該框架基于JS語言,將移動開發平臺中的開發代碼、功能組件進行重構,使系統的設計、開發過程符合領域驅動設計的規范。

DDMVVM開發框架:

該框架的設計目標是在實際項目開發中,引導相關人員以DDMVVM模型為指導,規范地設計、開發方式實現系統,以提高系統分析、設計和開發的效率。

如圖3所示,該框架編程語言為移動開發平臺下的JS語言,具體實現了圖2所示DDMVVM架構中各層領域模型元素,并實現了面向對象的程序設計。

4 案例分析

本文以第3章提出的DDMVVM模型為指導,對之前在移動開發平臺下實現的一個政務系統項目進行了設計重構、代碼重構。該項目采用第4章提出的DDMVVM Framework開發框架進行具體設計、開發實現。

將新舊系統進行對比后發現,采用DDMVVM設計開發的新系統要比之前舊系統實現的系統架構更優秀,新系統在系統完成效率、代碼性能及可維護性等方面都有了顯著提高。

5 結語

本文提出了適用于用戶界面應用程序開發的一種新的設計模型:領域驅動的MVVM設計模型(DDMVVM)。并以該模型為指導,在移動開發平臺下實現了具體的開發框架DDMVVM Framework。

[1]EricEvans,埃文斯,趙俐,等.領域驅動設計:軟件核心復雜性應對之道[M].人民郵電出版社,2016.

[2]李引,袁峰.基于領域驅動設計的應用系統模型[J].計算機工程與應用,2013,49(16):1-8.

[3]黃強,王薇,倪少權.基于SOA和DDD的鐵水聯運信息平臺構架設計[J].計算機應用與軟件,2013,30(6):124-126.

[4]陳明,李猛坤,張強.一種基于擴展MVVM模式的SaaS面向服務計算模型[J].微電子學與計算機,2010,27(8):27-30.

[5]劉立.MVVM模式分析與應用[J].微型電腦應用,2012,28(12):57-60.

[6]Kouraklis J.MVVM as Design Pattern[M]//MVVM in Delphi.Apress,2016.

猜你喜歡
模型系統設計
一半模型
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
瞞天過?!律O計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
主站蜘蛛池模板: 国产原创演绎剧情有字幕的| 伊人无码视屏| 精品少妇人妻无码久久| 国产91精品调教在线播放| 成年人国产网站| 国产精品毛片一区视频播| 亚洲区一区| 国产精品一区二区国产主播| 日韩av电影一区二区三区四区 | 中文字幕免费播放| 国产自视频| 精品国产aⅴ一区二区三区| 一级毛片中文字幕| 中文字幕亚洲无线码一区女同| 日韩成人午夜| 久久精品国产电影| jizz国产视频| av在线5g无码天天| 岛国精品一区免费视频在线观看| 99视频精品全国免费品| 成人国产一区二区三区| 色135综合网| 秋霞国产在线| 亚洲一区免费看| 波多野结衣一区二区三视频 | 一级香蕉人体视频| 国产高清在线观看91精品| 亚洲中文字幕无码爆乳| 午夜精品久久久久久久无码软件| 永久免费无码成人网站| 精品一区二区三区无码视频无码| 国产在线97| 日本午夜影院| 伊人色天堂| 国产经典免费播放视频| 欧美成人国产| 毛片网站观看| 成年片色大黄全免费网站久久| 欧美国产综合视频| 97se亚洲| 精品福利视频网| 中文国产成人精品久久一| 中文字幕在线永久在线视频2020| 成人va亚洲va欧美天堂| a在线观看免费| 国产一级α片| 久久这里只有精品免费| 天天综合网色| 久久久久88色偷偷| 91www在线观看| 国产美女久久久久不卡| 久久美女精品国产精品亚洲| 国产丝袜无码一区二区视频| 亚洲成a人在线播放www| 国产综合另类小说色区色噜噜 | 中国丰满人妻无码束缚啪啪| 欧美成人h精品网站| 97久久人人超碰国产精品| www.国产福利| 亚洲成人精品久久| av在线5g无码天天| 青青草综合网| av在线无码浏览| 久久久久亚洲精品成人网| 日本成人一区| 不卡色老大久久综合网| 亚洲色图欧美激情| 午夜小视频在线| 亚洲色图欧美| 色婷婷在线播放| 欧美日本在线播放| 亚洲视频欧美不卡| 97视频在线精品国自产拍| 日韩欧美91| 久久精品欧美一区二区| 国产精品国产三级国产专业不| 99久久99视频| 国产精品福利在线观看无码卡| 无码久看视频| 日韩经典精品无码一区二区| 欧美中出一区二区| 亚洲无码A视频在线|