我正在使用 DDD 进行项目,我有一些课程,但我不知道将它们放在哪里。
该域是关于现有游戏的。该游戏具有基本概念,例如角色,技能树。我的领域类只是代表这些概念。我没有制作这个游戏。
我的应用程序/项目是关于拥有一个代表这些概念的软件,并具有一些附加值。目前,名称和描述是唯一可能的附加值(例如,“火法师”和“法力依赖,小心!”)。
问题1:有两个类是否有意义,还是应该合并它们?在前一种情况下,我应该将此类“具有附加值(名称和描述)”放在哪里?在应用层?
问题2:我说领域层代表我正在研究的知识领域,应用层代表领域中不存在但我想提供的所有东西,作为附加值,我说得对吗?
(因此,如果我的软件只是代表领域,应用层很薄,如果我的软件提供了很多非领域功能,那么应用层很厚?)
附加信息 1:我的项目是关于创建一个角色模拟器。因此,为了模拟一个角色,我必须表示它,以及它的所有依赖项。我的领域层职责是代表游戏。它包含像 Character 这样的类,具有一些属性(Life、Mana、Attack、Defense、Class)和一些枚举(如 CharacterClass,它列出了所有可用的类)。
现在,我希望我自己的项目能够为用户提供创建代表游戏角色的项目的能力。该项目还允许用户保存其他信息,例如当前项目的名称、主要(和次要)设备集、主要(和次要)技能树。任何设备集和技能树都可以使用注释,因此用户可以简单地拥有一个内置的备忘录/便利贴。次要装备集和技能树,注释不是游戏中现有的概念(因此,在我的领域中不存在)。
问题1中,“增值类”是一个角色项目,是多个信息(角色装备、技能树、注释等)的集合。如果用户需要,它可以保存在物理支架上,稍后再次打开和编辑。
问题 1 的重新表述:我有一个 Character 类和一个 CharacterProject 类。CharacterProject 类是多个信息的组合。但它特定于我的应用程序。把它放在应用层、领域层或其他地方有意义吗?