[发明专利]一种基于领域驱动设计的MVVM设计模型在审
| 申请号: | 201611208226.6 | 申请日: | 2016-12-23 |
| 公开(公告)号: | CN106815016A | 公开(公告)日: | 2017-06-09 |
| 发明(设计)人: | 王明辉;刘运;王跃;黄丽姝;侯腾;李晗 | 申请(专利权)人: | 四川大学 |
| 主分类号: | G06F9/44 | 分类号: | G06F9/44 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 610065 四川*** | 国省代码: | 四川;51 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 领域 驱动 设计 mvvm 模型 | ||
技术领域
本发明涉及软件工程和软件体系结构领域,具体为前端图形用户界面程序的设计开发和领域驱动的软件设计开发,尤其是一种基于领域驱动设计的MVVM设计模型。
背景技术
MVVM模型,是由微软开发人员提出的一种前端设计模式,旨在降低前端用户界面程序的开发复杂性。作为MVC经典模式的扩展、升级,MVVM实现了视图层(View)与数据模型层(Model)的完全解耦,可以使系统开发者和设计者完全独立、并行地工作。因为MVVM的诸多优点,目前非常多的主流用户界面程序开发平台都采用该架构,如Android、IOS,以及微信团队最近发布的微信小程序开发平台。
但在实际应用程序开发过程中,采用传统MVVM架构进行设计开发的程序不能很好地适应软件需求变更,也不能准确、完整地实现复杂性较高的业务需求。分析原因可知,MVVM设计模式的关注点是业务数据,属于数据驱动的开发模式,并没有从业务领域解决开发人员与领域专家之间的沟通问题。采用传统MVVM架构的软件开发,系统分析与系统设计是割裂的,会导致设计实现的系统不能与系统分析结果保持很好的一致性。
基于此,本发明实施例在用户界面程序MVVM架构中,加入领域驱动设计的思想,提出了基于领域驱动设计的MVVM设计模型。将软件分析与设计的关注点引导到业务上来,使用领域模型作为分析与设计的通用语言(Ubiquitous Language)。基于领域驱动设计的MVVM设计模型,以领域模型为核心,指导相关人员以领域驱动设计的思想进行系统分析、设计和开发工作,形成了统一的系统语言。
本发明实施例提供的基于领域驱动设计的MVVM设计模型,作为一种有效的设计模型,将从软件开始阶段即发挥指导作用,涉及软件分析、设计、开发的整个软件过程模型。在整个软件过程中,领域专家、设计人员、开发人员使用“基于领域驱动设计的MVVM设计模型”作为通用语言(Ubiquitous Language),使最终实现的软件真正能够表达和传递业务领域知识。
发明内容
本发明提供了一种基于领域驱动设计的MVVM设计模型,有效解决了前端应用程序开发中软件复杂性越来越高的问题,有效降低了软件系统的复杂性,有效提高了软件系统的可维护性、可扩展性等质量属性,能够有效指导和规范软件开发人员,使其将重点放在系统核心业务领域。
本发明实施例具体实现的发明内容,概括起来为3部分:
(1)首次提出了在MVVM模型中采用领域驱动设计(DDD)的思想,并设计了一种全新的前端架构设计模型:基于领域驱动设计的MVVM设计模型(DDMVVM);
(2)以DDMVVM模型为指导,提出了基于领域驱动设计的MVVM模型设计方法;
(3)在具体的前端开发平台微信小程序平台下,开发并实现了基于领域驱动设计的MVVM模型开发框架:DDMVVM Framework。
1. 基于领域驱动设计的MVVM设计模型。
所述基于领域驱动设计的MVVM设计模型,是一种前端系统设计模型,在已有的MVVM模型基础上,引入了领域驱动设计的思想,实现了领域驱动设计的各核心要素。所述基于领域驱动设计的MVVM设计模型是一种分层架构模型,具体划分为四种层次,自上而下依次为:视图层(View Layer)、视图模型层(ViewModel Layer)、领域模型层(DomainModel Layer)和基础设施层(Infrastructure Layer)。
所述基于领域驱动设计的MVVM设计模型采用分层设计,实现了“关注点分离”的设计开发原则。每一层实现自己层次内特定功能,而且只依赖自己下一层次,不会出现跨层调用的混乱现象。
视图层由UI设计师负责实现,只包含视图组件、界面布局等用户界面代码,不包含任何业务逻辑代码。
视图模型层负责实现领域驱动设计中的“领域服务”元素,其中包含领域模型层中的领域对象接口,用以协同调用多个领域对象。所述视图模型层是视图层和领域模型层的中介,负责视图层和用户交互的逻辑代码实现,且含有领域模型层接口,负责调用领域模型层中具体业务逻辑。
领域模型层保存业务领域状态,并实现业务领域逻辑。具体保存的业务领域状态包括业务数据、业务操作和业务规则。
基础设施层提供业务系统底层技术支持,不涉及具体的业务功能。基础设施层为领域模型层提供领域对象持久化、领域对象创建、领域对象删除等技术支持。
2. 基于领域驱动设计的MVVM模型设计方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川大学,未经四川大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611208226.6/2.html,转载请声明来源钻瓜专利网。





