什么是领域模型?什么是数据模型

MonkeyEye电影售票系统--领域模型和数据模型 案例来源:SYSU SE305 课程大作业。互联网售票软件是比较常见的软件系统。通常由多个零售系统和多个供给系统系统。 机票、酒店房间、电影票似乎是风马牛大相关的系统,但它们之间存在极其相似的业务模型。 以电影票为例,格瓦拉、蜘蛛网、腾讯等等都做类似的电影票分销、推广业务,但票是由各大院线排期提供的。 分销-院线-影院形成了一个完整的生态体系。 本课程以大家熟悉的订票为例,学习分析、设计、开发的方法 阅读详情

领域模型关注的是领域知识,是业务领域的核心实体,体现了问题域里面的关键概念,以及概念之间的联系。领域模型建模的关键是看模型能否显性化、清晰的表达业务语义,扩展性是其次。

数据模型关注的是数据存储,所有的业务都离不开数据,都离不开对数据的CRUD,数据模型建模的决策因素主要是扩展性、性能等非功能属性,无需过分考虑业务语义的表征能力。

按照Robert在《整洁架构》里面的观点,领域模型是核心,数据模型是技术细节。然而现实情况是,二者都很重要。

这两个模型之所以容易被混淆,是因为两者都强调实体(Entity),都强调关系(Relationship),这可不,我们传统的数据库的数据模型建模就是用的ER图啊。

是的,二者的确有一些共同点,有时候领域模型和数据模型会长的很像,甚至会趋同,这很正常。但更多的时候,二者是有区别的。正确的做法应该是有意识地把这两个模型区别开来,分别设计,因为他们建模的目标会有所不同。如下图所示,数据模型负责的是数据存储,其要义是扩展性、灵活性、性能。而领域模型负责业务逻辑的实现,其要义是业务语义显性化的表达,以及充分利用OO的特性增加代码的业务表征能力。

架构师: 领域模型(DDD)设计详解与实践 本文介绍了领域驱动设计(DDD)中的领域模型概念及其在电商订单系统中的实践应用。领域模型将业务逻辑、数据和规则封装到对象中,包含实体、值对象、聚合、领域服务和仓储等核心元素。通过充血模型设计,业务逻辑与数据紧密结合,提高代码可维护性和业务契合度。文章以订单系统为例展示分层架构:Domain层定义订单、订单项等核心模型;Application层协调领域对象;Infrastructure层处理持久化;Presentation层提供API接口。 阅读详情

相关推荐

5分钟搞定:用Ollama在MacBook上本地运行Qwen3大模型(附避坑指南)

本文详细介绍了如何在MacBook上使用Ollama快速部署和运行Qwen3大模型,包括安装步骤、性能优化技巧及常见问题解决方案。Ollama作为一款轻量级工具,特别适合M系列芯片的Mac用户,支持多种量化版本,显著降低资源消耗,提升推理速度。

sql99的博客 822

领域模型的介绍

通过合理的领域模型设计,系统可以更容易地适应业务变化,减少对其他模块的影响,从而提供更好的灵活性和可扩展性。1. 业务理解和沟通:领域模型帮助开发团队深入理解业务领域,从业务专家和利益相关者那里获取业务需求,并将其转化为可执行的软件系统。领域模型的设计和实现需要结合具体的业务需求和技术架构,以确保模型能够准确地表示业务领域,并支持相关的业务逻辑和规则。总的来说,领域模型在软件开发中具有重要的意义,它通过提供对业务领域的抽象和建模,帮助开发团队更好地理解业务需求,实现高质量的软件设计和可维护的系统。

nbspzs的专栏 3898

拼多多/Temu反爬参数逆向踩坑记:从浏览器调试到补环境完整复盘

本文详细解析了拼多多/Temu反爬参数`anti_content`的逆向工程实战,从浏览器调试到补环境完整复盘。通过JavaScript逆向技术,拆解关键函数定位、反混淆算法还原及补环境技术应用,帮助开发者突破电商平台复杂反爬系统,提升数据采集效率。

weixin_33978722的博客 913

领域模型详解

学会了面向对象的语法,却依然写不出面向对象的程序,因此我们需要了解如何从需求分析到面向对象设计这样一个过程。一,什么是领域模型领域建模。 从领域模型开始,我们就开始了面向对象的分析和设计过程,可以说,领域模型是完成从需求分析到面向对象设计的一座桥梁。 顾名思义,就是显示最重要的业务概念和它们之间关系,是真实世界各个事物的表示(现实世界的可视化抽象字典)而不是软件中各构件的表示。(类:表示业务概念,...

u014028063的博客 4万+

CGAL AlphaShape算法(自适应Alpha值,二维版本)

CGAL AlphaShape算法(自适应Alpha值,二维版本)

dayuhaitang1的博客 2325

如何在Ubuntu 22.04系统上安装CUDA 12.9

本文提供Ubuntu22.04系统上安装CUDA12.9的简明指南:1)确认已安装适配575驱动;2)清理旧版本后安装必需依赖库;3)通过deb包方式添加英伟达源并安装CUDA12.9工具包;4)配置环境变量;5)通过nvcc-V和nvidia-smi命令验证安装。文中包含常见问题解决方法及多显卡使用说明,全程约需10分钟完成安装。

2501_93651177的博客 1481

领域模型

领域模型是对领域内的概念类或现实世界中对象的可视化表示。又称概念模型、领域对象模型、分析对象模型。它专注于分析问题领域本身,发掘重要的业务领域概念,并建...

dotNET跨平台 4865

【unity小技巧】委托(Delegate)的基础使用和介绍

在Unity中,委托(Delegate)是一种用于处理方法回调的特殊类型。它允许您将方法作为参数传递给其他方法,并在需要时调用这些方法。委托在游戏开发中非常有用,特别是在事件处理、消息传递和异步操作方面。它提供了一种灵活的方式来注册和触发方法,而无需显式地知道这些方法的实现细节。个人理解:可以把委托理解为一个容器,容器里面放可以放很多函数方法。一调用委托,里面所有的函数方法都会同步被执行。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 7239

UML复习——领域模型

e.g.(见下图)Cashier类中的currentRegister属性是不合适的,因为currentRegister的类型是Register,并不是简单数据类型(Number或String)。)在设计模型中,属性可以是任何类型。1.定义:关联是类(更准确的说,是类的实例)之间的关系,表示有意义和值得关注的连接。⑤具有以上性质的一个或多个类型的抽象,e.g.销售领域的商品标识符是诸如UPS和EAN这样的类型的泛化。①定义:数据类型指的是一组值,这组值的表示本身不具有任何含义(在我们的模型或系统的语境下)。

2301_78060222的博客 4633

YOLOv12超参数智能优化:基于内置Ray Tune的自动化调优实战指南

购买即可解锁300+YOLO优化文章,并且还有海量深度学习复现项目,价格仅需两杯奶茶的钱,别人有的本专栏也有! 目标检测模型的性能瓶颈往往源于超参数配置不当。传统手动调优方式不仅耗时耗力,且难以找到全局最优解。YOLOv12集成的Ray Tune框架为解决这一难题提供了完整方案,通过分布式异步优化算法,可实现超参数搜索效率的指数级提升。实际测试表明,采用Ray Tune自动调优的YOLOv12模型,在COCO数据集上mAP指标平均提升3.8%,收敛速度加快2.1倍。在VisDrone无人机数据集上的跨域测试

LXY_LOVE36的博客 119

全面解析智能座舱芯片参数:高通 (SA8295)vs 联发科,真实案例一行行讲给你听!

使用场景推荐芯片中低端车型 + 1屏导航语音SA8155P / MT8628(性价比高)中控+副驾+仪表+全景影像SA8255P / MT8678(性能强)高阶自动驾驶+域控融合SA8295P(顶级安全+算力)

weixin_43199439的博客 2079

一文教你认清领域模型和数据模型

依稀记得我第一次设计一个系统的时候,画了一堆UML图,面对Class Diagram(其实就是领域模型),纠结了好久,不知道如何落地。因为,如果按照这个类图去落数据库的话,看起来很奇怪,有点繁琐。可是不按照这个类图落库的话,又不知道这个类图画了有什么用。 现在回想起来,我当时的纠结源自于我对领域模型和数据模型这两个重要概念的不清楚。最近,我发现对这两个概念的混淆不是个例,而是非常普遍的现象。其结果就是,小到会影响一些模块设计的不合理性,大到会影响像业务中台这样重大技术决策,因为如果底层的逻辑、概念、理论基础

我的新书《代码精进之路:从码农到工匠》 1万+

Dify之八添加各种在线大模型

Dify之八添加各种在线大模型

yilvyangguang520的博客 941

领域模型vs数据模型,应该怎么用?

简介:什么是领域模型?什么又是数据模型?两者可以等同吗?在实际应用中,怎么样才能用好它们?本文介绍领域模型和数据模型的概念定义,并举例说明两者相互混淆的错误用法,分享如何正确地应用它们。 依稀记得我第一次设计一个系统的时候,画了一堆UML(Unified Modeling Language,统一建模语言)图,面对Class Diagram(其实就是领域模型),纠结了好久,不知道如何落地。因为,如果按照这个类图去落数据库的话,看起来很奇怪,有点繁琐。可是不按照这个类图落库的话,又不知道这个类图画了有什.

云栖技术精选 948

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

领域模型VS数据模型,到底应该怎么用?

导读:什么是领域模型?什么又是数据模型?两者可以等同吗?在实际应用中,怎么样才能用好它们?本文介绍领域模型和数据模型的概念定义,并举例说明两者相互混淆的错误用法,分享如何正确地应用它们。 依稀记得我第一次设计一个系统的时候,画了一堆UML(Unified Modeling Language,统一建模语言)图,面对Class Diagram(其实就是领域模型),纠结了好久,不知道如何落地。因为,如果按照这个类图去落数据库的话,看起来很奇怪,有点繁琐。可是不按照这个类图落库的话,又不知道这个类图画了有什么用。

kuangfeng88588的博客 2109

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

​领域模型vs数据模型,应该怎么用?

凌云时刻 · 技术导读:本文介绍领域模型和数据模型的概念定义,并举例说明两者相互混淆的错误用法,分享如何正确地应用它们。作者|张建飞来源|阿里技术前言依稀记得我第一次设计一个系统的时候...

云布道师 423

架构上如何设计领域模型和数据模型?

依稀记得我第一次设计一个系统的时候,画了一堆UML(Unified Modeling Language,统一建模语言)图,面对Class Diagram(其实就是领域模型),纠结了好久,不知道如何落地。因为,如果按照这个类图去落数据库的话,看起来很奇怪,有点繁琐。可是不按照这个类图落库的话,又不知道这个类图画了有什么用。 扪心自问,你有多久没有画数据模型和领域模型了? 现在回想起来,我当时的纠结源自于我对领域模型和数据模型这两个重要概念的不清楚,先前看过DDD(领域驱动设计),里面一句话我觉得讲的很不错

码农架构 2077

【DDD】学习笔记-领域模型与数据模型

领域模型与数据模型的关系分析

xqdd的专栏 1550

领域模型和数据模型

目前很多人都不在乎领域模型和数据模型,认为领域模型 约等于 数据模型,然后数据库模型就按照领域模型进行设计,其实不一定要这么设计。因为领域模型才是业务的本质,数据库模型可以跟任何的领域模型都没有关系,只要存储起来就可以。数据库设计的时候,尽量要抽象,不一定某个表只服务于一个业务。

红豆和绿豆的博客 294

领域建模之数据模型设计方法论

一个好的方法论一定是告诉你当你面对一个全新的业务场景或未知领域的时候,如何去独立分析和解决问题。

2301_78385600的博客 224

阿里高级技术专家张建飞:深度剖析领域模型vs数据模型的用法

张建飞 frank读完需要21分钟速读仅需 7 分钟阿里巴巴高级技术专家,著有图书《代码精进之路 从码农到工匠》,维护公众号《从码农到工匠》 ID:craftsman_frank阿里妹导读...

中生代技术 1569
上一篇: 请说一下你理解的主数据
下一篇: 数据倾斜以及处理
问道2020
博客等级 码龄8年 4粉丝 47原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值