21得票3回答
Unit Of Work和Repository模式的实际应用

我正在构建一个ORM,并试图弄清楚每个模式的确切责任是什么。假设我想在两个账户之间转账,使用工作单元来管理在单个数据库事务中的更新。 以下方法是否正确? 1. 从存储库获取它们 2. 将它们附加到我的工作单元 3. 进行业务交易并提交? 示例: from = accountReposi...

20得票5回答
DDD:实体在持久化之前的身份标识

在领域驱动设计中,实体的一个定义特征是它具有唯一标识。 问题: 我无法在实例创建时为实体提供唯一标识。这个标识只有在实体持久化之后由仓储库提供(这个值从底层数据库提供)。 我不能使用 Guid 值来解决这个问题。现有数据是使用 int 主键值存储的,我无法在实例化时生成唯一的 int。 ...

18得票5回答
为什么在REST API中不应将领域模型用作资源?

我发现有一种说法认为,根据DDD设计的领域模型不应该作为REST API中的资源使用(来源)。 很明显,REST API是应用程序的契约,而领域模型是实现的一部分,因此最好将这两个东西分开,这样在领域模型发生变化时,并不会自动意味着REST API也要发生变化。 然而,我认为对于小型项目(...

15得票2回答
领域驱动设计:如何处理有大量数据字段的复杂模型?

我正在尝试为我的应用程序应用领域驱动设计原则,采用包含数据字段和业务逻辑的丰富领域模型。我已经读了很多领域驱动设计的书籍,但是它们的领域模型(称为实体)似乎非常简单。当我有一个包含10-15个数据字段的领域模型时,例如下面这个例子,问题就出现了:class Job extends Domain...

13得票7回答
领域驱动设计、领域对象、关于Setter的态度

最近看了一些Greg Young的视频,试图理解为什么在域对象上使用Setter会有负面态度。我认为DDD中域对象应该有很多逻辑。是否有在线上的不良示例以及如何进行更正的好例子?任何例子或说明都可以。这是否仅适用于以CQRS方式存储的事件,还是适用于整个DDD?

12得票4回答
使用访问者模式从平面DTO构建对象图

我已经写了一个漂亮简单的领域模型,对象图看起来像这样:-- Customer -- Name : Name -- Account : CustomerAccount -- HomeAddress : PostalAddress -- InvoiceAddress...

12得票3回答
PHP领域模型

我已经使用PHP编程多年,并曾采用自己的方法处理应用程序中的数据。 我以前建立过自己的MVC,对php中的OOP有相当的理解,但我知道我的实现需要一些严肃的改进。 过去,我在模型和数据库表之间使用了is-a关系。经过一些研究之后,我现在知道这并不是最好的方式。据我所知,我应该创建模型,它们...

11得票4回答
UML领域建模

领域模型和数据模型有什么区别?

11得票3回答
有一个丰富的领域模型示例吗?

我正在寻找一个简单的例子来说明使用丰富的领域模型的好处。最好能提供一个有前后对比的代码清单(尽可能短)。 前面的代码清单应该展示使用贫血的领域模型和相当程式化的服务层代码来解决问题,而后面的代码清单则应该展示使用丰富的面向对象的领域模型来解决同样的问题。 理想情况下,这个代码清单应该是用J...

11得票4回答
领域模型和对象模型

什么是领域模型? 什么是对象模型? 领域模型和对象模型是相同的吗?这两者之间有什么区别?请举一个简单的例子进行解释。我对这些概念很陌生。我在Google上搜索了很多,但没有找到简单的解释和例子。