首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UML领域模型:如何区分属性和类?

UML领域模型:如何区分属性和类?
EN

Stack Overflow用户
提问于 2018-05-27 13:52:54
回答 1查看 367关注 0票数 3

我目前正在制作一个战斗游戏的域模型,我很难确定某些元素是属于自己的类还是某些类的属性。例如,我使用了一个类别列表来确定以下想法/对象:战斗机、等级、武器、装甲、属性、技能、竞技场、游戏模式、游戏日志、对手。

例如,我不知道等级、武器、盔甲、属性、技能是应该简单地描述为战斗机的属性,还是应该作为自己的目标来划分。我也不知道一个对手是否应该是一个不同的等级,因为它最终是一个与另一个战斗机有“攻击/防御”关联的战斗机目标。

如何确定类别列表中每个元素的正确选择?这是主观的吗?

FYI,我使用Craig的“应用UML和模式”第三版作为信息源。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-28 05:35:14

为了澄清您的问题,您的领域模型中的每个类都有一组属性。我认为您要问的问题是,这些属性的类型是否应该是类本身,还是其他数据结构(例如结构、枚举、原语等)。

如果这是正确的,那么答案就归结于你的分析中产生的设计选择;没有一个“正确的方法”--这是软件设计的艺术。然而,在做出决定时,您可能需要寻找一些关键的东西:

  1. 行为要求的证据。属性所引用的对象是否需要封装行为本身?显然,某些数据结构不可能封装行为,这可能导致您对那些可以(例如类与结构)进行选择。
  2. 数据结构的复杂性。属性所引用的对象是否需要封装复杂的数据结构?(例如,多个,可能是分层的,各种原语和/或复杂类型的数据),还是简单?(例如,一个整数值)。同样,结构的复杂性将限制您如何表示它。
  3. 您的系统的非功能需求是什么?(例如业绩要求?)NFR(如性能、可伸缩性和安全性)可能会限制您的设计选择,因此您可以选择以简单的方式表示复杂类型或消除行为需求等。
  4. 设计的选择是帮助你还是阻碍你?用一种过于复杂的方式来表示妨碍您的工作或系统的东西是没有意义的。
  5. 观众们。这可能是最重要的一点--你把域模型放在一起是为了谁?你想和他们沟通什么?

因此,例如,您可以将"Weapon“表示为作为类类型的属性或使用简单类型。“武器”有自己的行为吗?它是否包含多个复杂数据?是否存在NFR,这意味着它只能作为一个枚举来处理?诸若此类。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50552822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档