Domain driven design 通用数据模型和域模型实现

Domain driven design 通用数据模型和域模型实现,domain-driven-design,data-modeling,domain-model,object-model,Domain Driven Design,Data Modeling,Domain Model,Object Model,我正在阅读的一位通用数据模型作者认为,根据他的经验,50%的企业系统在与各方打交道、工作努力等方面是“通用”的,25%在该企业的行业内是通用的,其平衡是特定企业所特有的(即可口可乐与百事可乐) 但我不知道有哪些代码是建立在这个基础上的,也想不到有人真正从领域的角度来看待模式,而不是从数据建模的角度来看待模式,因为Fowler在90年代中期就这样做了 对于通用数据模型的有用性,任何一个面向DDD的人是否有任何基于意见的经验 你是否真的将派对的子类型限制在个人和组织上,而其他人都扮演角色?如果是这样

我正在阅读的一位通用数据模型作者认为,根据他的经验,50%的企业系统在与各方打交道、工作努力等方面是“通用”的,25%在该企业的行业内是通用的,其平衡是特定企业所特有的(即可口可乐与百事可乐)

但我不知道有哪些代码是建立在这个基础上的,也想不到有人真正从领域的角度来看待模式,而不是从数据建模的角度来看待模式,因为Fowler在90年代中期就这样做了

对于通用数据模型的有用性,任何一个面向DDD的人是否有任何基于意见的经验

你是否真的将派对的子类型限制在个人和组织上,而其他人都扮演角色?如果是这样的话,你如何实施

有什么您喜欢的实现指南或开源系统吗

干杯,

Berryl

通用模式书籍和Fowlers分析模式中提供的数据和域模型非常有用,因为它们提供了模型结构的详细和通用概述。我在创建更具体的领域模型时使用了它们作为参考,通常只使用书中描述的部分模型


就福勒书中的责任模式而言,一个政党与一个角色是不同的,因为一个给定的政党可以扮演多个角色。因此,对我来说,政党既可以是个人也可以是组织是有道理的。NET框架中的一个示例是和接口。身份可以代表一方,而IPrincipal是身份和一组角色的组合。

通用模式手册和Fowlers分析模式中提供的数据和域模型非常有用,因为它们提供了模型结构的详细和通用概述。我在创建更具体的领域模型时使用了它们作为参考,通常只使用书中描述的部分模型

就福勒书中的责任模式而言,一个政党与一个角色是不同的,因为一个给定的政党可以扮演多个角色。因此,对我来说,政党既可以是个人也可以是组织是有道理的。NET框架中的一个示例是和接口。身份可以代表一方,而IPrincipal是身份和一组角色的组合

你是否真的有仅限于个人和个人的派对子类型 组织,所有其他人都扮演角色?你是如何实现的 若有?

有关一个最小实现,请参阅

简而言之,如果某个角色可以由个人和组织担任,那么该角色(可能不是最好的词)引用了超类型。“客户”可能是一个很好的例子

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

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

(并非所有这些示例都在链接的答案中,但我认为PostgreSQL源代码使您能够非常容易地了解您可能需要做什么。)

你是否真的有仅限于个人和个人的派对子类型 组织,所有其他人都扮演角色?你是如何实现的 若有?

有关一个最小实现,请参阅

简而言之,如果某个角色可以由个人和组织担任,那么该角色(可能不是最好的词)引用了超类型。“客户”可能是一个很好的例子

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

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


(并非所有这些示例都在链接的答案中,但我认为PostgreSQL源代码使您很容易找到可能需要执行的操作。)

+1用于分离参与方和角色。这是一种非常简单但功能强大的技术,适用于许多不同的环境。@sfinie。我想我是在概念上分离党派和角色,寻找一些经过验证的实现,最好是在c#中。有你特别喜欢的吗?@eulerfx。您是否经常使用Party&Role的任何实现?虽然简化通常是特定于一个用例的,但我不知道有哪个DDD项目关注参与方/角色的实现,但是.NET framework中的示例有几个实现。+1用于分离参与方和角色。这是一种非常简单但功能强大的技术,适用于许多不同的环境。@sfinie。我想我是在概念上分离党派和角色,寻找一些经过验证的实现,最好是在c#中。有你特别喜欢的吗?@eulerfx。您是否经常使用Party&Role的任何实现?虽然简化通常是特定于一个用例的,但我不知道有任何DDD项目关注于参与方/角色的实现,但是.NET framework的示例有几个实现。是的,这就是我要寻找的,但我在实现的细节中发现了魔鬼。一直在“玩”一个装饰图案,但它的运动部件比我喜欢的多。我会在短时间内看看这个答案。干杯,这就是我想要的,但我在实现的细节中找到了魔鬼。一直在“玩”一个装饰图案,但它的运动部件比我喜欢的多。我会在短时间内看看这个答案。干杯