首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >复杂树结构建模

复杂树结构建模
EN

Software Engineering用户
提问于 2016-08-06 17:14:20
回答 1查看 281关注 0票数 1

在堆栈溢出:多态树结构中问了这个问题之后,我得出了一个结论,那就是我不是特定的,我的问题不是关于任何特定的技术,所以我将尝试重写它。在堆叠溢出问题中,我写了一个关于祖父母/父母/孩子类的文章,为了使我的问题简洁,这一次我要说的是:

我真正的领域是陆军模拟器/游戏

域模型是:军团->师->旅,它形成树状结构--旅的家长必须是师,师的父必须是军团

没有父母的单位(不允许兵团除外)

此外,游戏分为三种角色:兵团将军、师将军和旅将军,每个玩家都需要根据自己的角色选择自己的管理单位--兵团将军选一个兵团等等。

用于管理单元的ui看起来像一棵树,在树中添加、删除和编辑单元:

  • coprs
    • 除法
      • 鸟旅

在我之前的问题中,我得到的答案是把它建模为

代码语言:javascript
复制
asbtact class Unit {  
   List<Unit> children;
   Unit parent;
}

这意味着我对每一种单位类型并没有任何不同的对待,然而,它不适合我的游戏,因为它似乎很难确定单位类型的一个州(例如,没有父==军团),它允许的情况下,一个旅的父母是一个团队是不可能的。我不希望一个军团的将军能够选择一个旅来管理,仅仅是因为它没有被分配给一个家长,因此游戏认为它是一个团队。更有预见性的是,我不想通过三个单元中的位置来确定单元类型,而是相反,根据它们的类型来确定它们的位置。

所以,我的问题是,你认为怎样才是最好的方法,在课堂上建模?

我想到了每种类型的一个类

代码语言:javascript
复制
interface Unit {
  Unit getParent();
  List<Unit>  getChildren()

}

代码语言:javascript
复制
   class Brigade implements Unit
   class Divison implements Unit
   class Corps implements Unit
EN

回答 1

Software Engineering用户

发布于 2016-08-31 15:01:34

根据您的描述,最简单的模型(就纯结构而言)如下:

代码语言:javascript
复制
class Corps {
    final List<Division> children;
}

class Division {
    final Corps parent;
    final List<Brigade> children;
}

class Brigade {
    final Division parent;
}
票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/327752

复制
相关文章

相似问题

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