2011-08-19 10 views
1

我正在阅读的老问题和this one让我想知道如何管理如此大量的子类(100+在示例问题),因为有几条评论说,这是非常糟糕的做法与类。如何管理拥有大量子类的超类?

一个简单的例子,像Minecraft这样的游戏 - 一切都是块,所以有一个明确的超类。但每个块的类型都有自己的密度,质地,重量,出现机会等属性值,以及许多子类特有的属性值。 因此,如果游戏有几十种类型的块,那么如何以“适当”的OOP方式来管理?

有更好的数据结构来使用而不是纯类吗?如果只是大量的数字属性,你可以使用更简单的东西(甚至只是一个配置文件),但是很可能会有许多子类特有的代码。

NB由于这是一个稍微普遍的问题,而不是我试图实现的,我不确定这是否更适合programmers.stackexchange.com。如果是这样,请在评论中告诉我,我将结束这个问题,然后在那里提问。我也不确定如何标记这个,所以随时编辑!

回答

1

也许可以使用图形数据结构,其中节点是“块”,节点属性是节点的属性。如果“块”具有某个子结构,则可以使用与其父节点相关联的(子)节点来表示该块。然后使用工厂方法创建不同类型的块节点。

这是一种非常灵活的方法,因为图形数据结构始终保持不变,但你转移到复杂的管理和处理不同配置的节点/图...

+0

因为有任何人没有更多的想法,我将这个标记为已接受,因为将大量相同的对象(例如块)作为一组来处理而不是单独处理是有意义的。 – Alex

相关问题