【问题标题】:Creating a domain model创建域模型
【发布时间】:2020-04-07 05:06:36
【问题描述】:
我正在为一个类创建域模型而苦苦挣扎。我对领域模型及其用途有基本的了解,但是真的不知道从哪里开始。
“考虑以下对公司会议规则的描述:
- 会议安排在预设的日期和时间。
- 会议具有唯一标识符。
- 会议有几个议程项目已经提出并要讨论。
- 为每个议程项目存储名称和描述。
- 每个人都知道姓名和身份证号码。
- 必须在会议召开前至少一周报名参加会议。
- 某些议程项目可能需要投票。
- 参加会议的人可以对议程项目进行投票。投票可以是“是”、“否”或“弃权”。我们需要存储每个人的投票。”
有人可以帮助创建一个表示此信息的域模型吗?
【问题讨论】:
标签:
model
uml
domain-model
【解决方案1】:
基本上 (!) 它非常简单。简而言之:
- 只需找出提到了哪些业务对象。
- 给每个对象一个有意义的名字。
- 适当地关联对象。
- 为对象添加属性。
- 查找并列出业务规则。
谈论对象是因为您正在使用具体对象分析业务领域。您将它们建模为类以便抽象它们。
困难在于细节。您需要与利益相关者举行会议以找到所有对象并从中挤出细节。以地址或人为例。非常常见的业务对象。每个人似乎都知道它的一切。但是你会发现这样的细节:我们在美国和中国做生意,他们有完全不同的方式来称呼某人。甚至存在局部差异。或者中间名在美国很常见,而德国实际上没有。以此类推。
那么详细介绍一下您的简单域模型:
- 您将会议、议程和人员作为业务对象。
- 可以挑选出像会议具有唯一标识符这样的属性。可以讨论该标识符是否也是一个对象。也许我会这样做,最终只是把它变成一个简单的字符串。
- 如何关联对象需要一些思考。我把它留给你。
- 像投票可以是“是”这样的业务规则可以添加为附加到对象的约束,或者您可以创建一个根据架构命名每个规则的表。