Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Data structures 一个人应该如何管理拥有大量子类的超类?_Data Structures - Fatal编程技术网

Data structures 一个人应该如何管理拥有大量子类的超类?

Data structures 一个人应该如何管理拥有大量子类的超类?,data-structures,Data Structures,我在阅读以前的问题,让我想知道你将如何管理如此大量的子类(示例问题中为100多个子类),因为有几条评论说,在类中这样做是非常糟糕的做法 举个简单的例子,像Minecraft这样的游戏——所有东西都是块,所以有一个清晰的超类。但是每种块类型都有其自己的属性值,如密度、纹理、权重、出现的机会等,以及许多特定于子类的属性值。 因此,如果游戏有几十种类型的方块,你如何以一种“适当的”,面向对象的方式管理它 是否有比纯类更好的数据结构可供使用?如果只是大量的数值属性,您可以使用一些更简单的东西(甚至只是一

我在阅读以前的问题,让我想知道你将如何管理如此大量的子类(示例问题中为100多个子类),因为有几条评论说,在类中这样做是非常糟糕的做法

举个简单的例子,像Minecraft这样的游戏——所有东西都是块,所以有一个清晰的超类。但是每种块类型都有其自己的属性值,如密度、纹理、权重、出现的机会等,以及许多特定于子类的属性值。 因此,如果游戏有几十种类型的方块,你如何以一种“适当的”,面向对象的方式管理它

是否有比纯类更好的数据结构可供使用?如果只是大量的数值属性,您可以使用一些更简单的东西(甚至只是一个配置文件),但也可能会有许多子类的特定代码


NB由于这是一个更一般的问题,而不是我试图实现的东西,我不确定这是否更适合于。如果是的话,请在评论中告诉我,我会结束这个问题并在那里提问。我也不知道如何标记这个,所以请随意编辑

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


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

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


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

由于没有任何人的想法,我将此标记为可接受,因为处理大量相同的对象(例如块)是有意义的作为一个整体而不是单独处理。由于没有任何人提出更多的想法,我将把它标记为已被接受,因为将大量相同的对象(例如块)作为一个整体而不是单独处理是有意义的。