[发明专利]一种基于领域驱动设计的MVVM设计模型在审
| 申请号: | 201611208226.6 | 申请日: | 2016-12-23 |
| 公开(公告)号: | CN106815016A | 公开(公告)日: | 2017-06-09 |
| 发明(设计)人: | 王明辉;刘运;王跃;黄丽姝;侯腾;李晗 | 申请(专利权)人: | 四川大学 |
| 主分类号: | G06F9/44 | 分类号: | G06F9/44 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 610065 四川*** | 国省代码: | 四川;51 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 领域 驱动 设计 mvvm 模型 | ||
1.一种基于领域驱动设计的MVVM设计模型(DDMVVM),其特征在于,在已有的MVVM设计模型基础上,引入了领域驱动设计的指导思想,实现了一种前端系统设计模型,
所述模型分为4层:
(1)视图层(View Layer),实现用户界面(UI,User Interface)展现功能,向终端用户提供可视化界面,并响应用户操作,实现与终端用户的交互;
(2)视图模型层(ViewModel Layer),即视图层的模型,保存视图层中的用户交互逻辑及中间系统状态,实现了视图层与领域模型层的完全解耦;
视图模型层响应视图层中的用户操作,并调用领域模型层接口,将需要展现的业务数据以指定格式保存,提供给视图层;
(3)领域模型层(DomainModel Layer),是所述模型的核心部分,保存业务领域状态,即业务数据、业务操作和业务规则;
(4)基础设施层(Infrastructure Layer),为所述模型提供技术支持,包括领域对象持久化、领域对象创建和领域对象删除等操作。
2.如权利要求1所述的基于领域驱动设计的MVVM设计模型,其特征在于,所述视图层由UI设计师负责实现,只包含视图组件及界面布局等用户界面代码,不包含任何业务逻辑代码。
3.如权利要求1所述的基于领域驱动设计的MVVM设计模型,其特征在于,所述视图模型层,使用“数据绑定”机制和“命令”机制,实现了视图层与领域模型层的完全解耦,具体实现了领域驱动设计中的“领域服务”方法,其中包含领域模型层中的领域对象接口,协同调用多个领域对象。
4.如权利要求1所述的基于领域驱动设计的MVVM设计模型,其特征在于,所述领域模型层,即领域对象的组合,领域对象中包含业务数据、业务操作和业务规则等业务领域状态。
5.如权利要求1所述的基于领域驱动设计的MVVM设计模型,其特征在于,以所述模型为指导,提出了基于领域驱动设计的MVVM模型设计方法,用以规范前端设计和开发,使其严格按照领域驱动设计的思想建立基于领域驱动设计的MVVM设计模型。
6.如权利要求5所述的基于领域驱动设计的MVVM模型设计方法,其特征在于,在特定的业务领域内,设计实现基于领域驱动设计的MVVM设计模型,实现模型的6种元素:实体(Entity)、值对象(Value Object)、领域服务(Domain Service)、聚合(Aggregate)、工厂(Factory)和仓储(Repository),具体是在两种层面上进行设计,即战略设计和战术设计:
(1)战略设计:是所述基于领域驱动设计的MVVM设计模型的最高层面设计,在所对应的业务领域中,划分出子领域,识别出核心领域、支撑领域和通用领域,并实现限界上下文,每个限界上下文使用各自的通用语言;
(2)战术设计:限界上下文为团队创建了一个模型设计边界,成员在边界内部为特定的业务子领域设计领域模型,即所述基于领域驱动设计的MVVM设计模型。
7.如权利要求6所述的战略设计,其特征在于,在设计规范的基于领域驱动设计的MVVM设计模型中,限界上下文和子领域是一对一关系,在单个限界上下文中,团队成员使用一套通用语言作为设计、开发的沟通交流语言。
8.如权利要求6所述的战术设计,其特征在于,核心领域是最重要的子领域,所述核心领域包含了核心业务知识,是业务系统的核心竞争力,团队成员需要将主要精力用在核心领域的建模设计。
9.如权利要求1所述的基于领域驱动设计的MVVM设计模型,其特征在于,具体实现了所述基于领域驱动设计的MVVM设计模型的一种开发框架:基于领域驱动设计的MVVM模型开发框架,所述框架在微信小程序开发平台下实现所述模型各层,将开发代码、功能组件进行重构,使系统设计、开发的过程符合领域驱动设计规范:
(1)视图层,使用微信小程序标记语言(WXML)定义视图层界面布局、实现各视图组件;
(2)视图模型层,开发了ActionJS功能组件,实现视图模型层功能;
(3)领域模型层,引入Redux状态容器库,提供可预测化的业务领域状态管理;
(4)基础设施层,开发了InfrastructureJS功能组件,实现了基础设施层功能。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川大学,未经四川大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611208226.6/1.html,转载请声明来源钻瓜专利网。





