1

我在读的一个通用数据模型作者认为,根据他的经验,50%的企业系统在处理缔约方,工作努力等方面“普遍”,25%是在该行业内普遍存在,其余部分对于特定业务(例如可口可乐和百事可乐)来说是独一无二的。通用数据模型和领域模型实现

但是我没有意识到建立在这个基础上的代码,并且从Fooler在90年代中期这样做以来,无法想到任何人从域的角度来看待模式,而不是数据建模。

任何有DDD定位的人都对通用数据模型的有用性有任何意见基础?

你真的有党的子类型限于个人和组织,与其他人在角色?你如何实现?

你喜欢的任何实施指南或开源系统?

干杯,
Berryl

回答

1

您是否字面上有党的子类型限于人和 组织,与其他人在角色?你如何实现 如果是这样?

对于一个最小实现,请参阅this SO answer

简而言之,如果一个特定角色(可能不是最好的单词)引用超类型,如果它是一个可以由个人和组织填充的角色。 “客户”可能就是一个很好的例子。

如果一个特定角色只能由一个人填写,则会引用个人子类型。 “员工”或“员工”可能就是一个很好的例子。

如果只能由组织填充,则特定角色引用组织子类型。 “雇主”或“前雇主”可能就是一个很好的例子。

(并非所有的这些例子都在链接的答案,但我认为PostgreSQL的源代码,使得它很容易找出你可能需要做什么。)

+0

是的,这就是我正在寻找的东西,但是我在实施的细节中找到了魔鬼。用装饰模式'玩',但它有更多的移动部分比我喜欢。将在短时间内看到这样的答案。干杯 – Berryl

2

在通用模式的书籍和福勒斯分析模式中提供的数据和领域模型是有用的,他们提供的模型的结构的详细和广义的概述。在创建更具体的领域模型时,我将它们用作参考,通常只使用书中描述的模型的一部分。

就福勒书中的问责模式而言,一个聚会与一个角色的不同之处在于,一个聚会可能履行多种角色。所以对我来说,一个党可以是一个人或一个组织是有道理的。 .NET框架的一个例子是IIdentityIPrincipal接口。 IIdentity可以代表一个派对,而IPrincipal则是一个身份和一组角色的组合。

+0

+1分离党和作用。这是一个非常简单但功能强大的技术,适用于许多不同的环境。 – sfinnie

+0

@sfinnie。我认为我在概念上将派对和角色分开,并寻找一些经过验证的实现,最好在C#中进行。有什么你特别喜欢? – Berryl

+0

@eulerfx。党和角色的任何实施,你往往使用更经常?干杯 – Berryl