文档章节

DDD(四)——实体(Entity)

MrYuZixian
 MrYuZixian
发布于 08/16 18:00
字数 608
阅读 15
收藏 0

1,引言

软件开发者大多趋向于将关注点放在数据上,而不是领域上。这对于刚入门的DDD的新手而言也是如此。以我目前的思考方式,数据库依然占据主要的地位。开发一个功能,首先我就会考虑我会用到哪些属性,这些属性又有什么外键关系,而不是直接在脑海中产生一个领域的概念,这样会将数据直接反应在对象上,这会产生大量的get和set方法,虽然现在有工具可以生成get和set,但这确不是DDD的做法。


2.实体(Entity)

实体本质、具体事物、个别主体、现象的支持者等意义,其含义一般是指能够独立存在的、作为一切属性的基础和万物本原的东西。

对于java而言,实体就是属性类,通常定义在model层里面。

而DDD中要求实体是唯一的且可持续变化的。意思是说在实体的生命周期内,无论其如何变化,其仍旧是同一个实体。唯一性由唯一的身份标识来决定的。可变性也正反映了实体本身的状态和行为。

为什么要使用实体?

当我们需要考虑一个对象的个性特征,或者需要区分不同的对象时,我们引入实体这个领域概念。

ddd的实体都做了些什么?

传统的实体只做值得传递作用,这无疑是相对浪费资源的,DDD的思想就是在实体中存在一些业务,例如:生成订单号,判断金额不能低于0.01等业务,这样可以减轻service层的压力。

3.小结

实体是存在贫血、充血、胀血这些特征,在之前的学习中有说到过,DDD的实体就是充血实体,传统的实体只有属性的实体称之为贫血实体,各有优劣。

© 著作权归作者所有

MrYuZixian

MrYuZixian

粉丝 4
博文 27
码字总数 15550
作品 0
深圳
私信 提问
C#进阶系列——DDD领域驱动设计初探(一):聚合

原文:C#进阶系列——DDD领域驱动设计初探(一):聚合 前言:又有差不多半个月没写点什么了,感觉这样很对不起自己似的。今天看到一篇博文里面写道:越是忙人越有时间写博客。呵呵,似乎有点...

杰克.陈
2017/12/19
0
0
abp(net core)+easyui+efcore仓储系统——领域层创建实体(三)

abp(net core)+easyui+efcore仓储系统目录 abp(net core)+easyui+efcore仓储系统——ABP总体介绍(一) abp(net core)+easyui+efcore仓储系统——解决方案介绍(二) 在上二篇文章中我们简单介绍...

DotNet菜园
06/05
0
0
DDD理论学习系列(6)-- 实体

DDD理论学习系列——案例及目录 1.引言 实体对应的英语单词为Entity。提到实体,你可能立马就想到了代码中定义的实体类。在使用一些ORM框架时,比如Entity Framework,实体作为直接反映数据库...

圣杰
2017/06/11
0
0
QueryPHP V1-beta.5 改进 ORM 设计体验

QueryPHP v1.0.0-beta.5,这个版本主要改进 ORM 和大量细节的优化。 关于 QueryPHP QueryPHP 是一款现代化的高性能 PHP 渐进式协程框架, 我们还是主要面向传统 PHP-FPM 场景,以工程师用户体验...

doyouhaobaby
09/10
1K
4
DDD学一步写一篇--DDD开发实践流程

DDD大家讨论的比较多的一般都是DDD的思想和理论,很少有文章讨论具体是如何实施和落地,所以这也导致很多同学看完了Evans经典巨著后对DDD还是不知道如何去实施。这篇文章我们讨论下DDD的实施...

monkey01
2018/11/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Git 分支管理规范

Git 仓库申请流程 开发主管向 Git 管理员提交 Git 仓库申请【邮件:发送给 Git 管理员,抄送给项目经理,申请表可向 Git 管理员获取】 Git 管理员审批开发主管的申请,审批以下具体信息: 审批...

物种起源-达尔文
5分钟前
2
0
浅谈iterator迭代器模式

一、前言 设计模式有很多,最典型的是GoF的23种设计模式,听起来很多,其实大部分我们都是见过的,按照常见度来分,最常用的差不多是六七个吧,因此,我们在学习的时候应该有轻重缓急之分,不...

青衣霓裳
6分钟前
2
0
Spring Boot2 系列教程(二)创建一个 Spring Boot 项目的三种方法

我最早是 2016 年底开始写 Spring Boot 相关的博客,当时使用的版本还是 1.4.x ,文章发表在 CSDN 上,阅读量最大的一篇有 43W+,如下图: 2017 年由于种种原因,就没有再继续更新 Spring B...

江南一点雨
7分钟前
1
0
熟练掌握这5个Excel技巧,只加薪不加班

月初月报的整理,周一周报的整理都离不开Excel,有的同事只要10分钟搞定,也有同事花费一上午时间整理报表,这样对比起来,时间差是很大的。那怎样快速对Excel表中的数据进行整理呢? 1.快速...

干货趣分享
12分钟前
2
0
总结:SpringCloud

一、Eureka Eureka 是 Netflix 开发的,一个基于 REST 服务的,服务注册与发现的组件 它主要包括两个组件:Eureka Server 和 Eureka Client Eureka Client:一个Java客户端,用于简化与 Eure...

浮躁的码农
21分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部