在堆栈溢出:多态树结构中问了这个问题之后,我得出了一个结论,那就是我不是特定的,我的问题不是关于任何特定的技术,所以我将尝试重写它。在堆叠溢出问题中,我写了一个关于祖父母/父母/孩子类的文章,为了使我的问题简洁,这一次我要说的是:
我真正的领域是陆军模拟器/游戏
域模型是:军团->师->旅,它形成树状结构--旅的家长必须是师,师的父必须是军团
没有父母的单位(不允许兵团除外)
此外,游戏分为三种角色:兵团将军、师将军和旅将军,每个玩家都需要根据自己的角色选择自己的管理单位--兵团将军选一个兵团等等。
用于管理单元的ui看起来像一棵树,在树中添加、删除和编辑单元:
在我之前的问题中,我得到的答案是把它建模为
asbtact class Unit {
List<Unit> children;
Unit parent;
}这意味着我对每一种单位类型并没有任何不同的对待,然而,它不适合我的游戏,因为它似乎很难确定单位类型的一个州(例如,没有父==军团),它允许的情况下,一个旅的父母是一个团队是不可能的。我不希望一个军团的将军能够选择一个旅来管理,仅仅是因为它没有被分配给一个家长,因此游戏认为它是一个团队。更有预见性的是,我不想通过三个单元中的位置来确定单元类型,而是相反,根据它们的类型来确定它们的位置。
所以,我的问题是,你认为怎样才是最好的方法,在课堂上建模?
我想到了每种类型的一个类
interface Unit {
Unit getParent();
List<Unit> getChildren()}
class Brigade implements Unit
class Divison implements Unit
class Corps implements Unit发布于 2016-08-31 15:01:34
根据您的描述,最简单的模型(就纯结构而言)如下:
class Corps {
final List<Division> children;
}
class Division {
final Corps parent;
final List<Brigade> children;
}
class Brigade {
final Division parent;
}https://softwareengineering.stackexchange.com/questions/327752
复制相似问题