2

我正在开发一款有一堆怪物的 iPhone 游戏。每个怪物都有一个名字,最多 4 种不同的攻击,以及一些代表其状态的精灵。我设置了一个怪物类,效果非常好。我已经设法让两个怪物战斗了,所有的爵士乐都奏效了。我的游戏中将有一组预定义的怪物,它们都有不同的统计数据,我有点努力想出最好的方法来实现这一点。到目前为止,我有两个想法。

想法:

  • 创建一个类,其唯一目的是使用 Monster 类定义游戏中可用的所有怪物。
  • 为我需要的每个怪物子类化怪物类。尽管它们都不会真正为怪物类添加任何东西。

第二种方法的好处是更容易在两个不同的怪物之间建立联系(如进化树)。

你们认为最好的方法是什么?我倾向于第二种方法。是我缺少的另一种方法吗?

4

2 回答 2

2

此类问题的常见模式是创建一个工厂类,这与您的第一个想法很接近。您创建了一个类,可能称为 MonsterFactory,其工作是制造 Monster 类的实例以供其他地方使用。如果你正确地构建工厂,它甚至可以很好地处理进化树之类的事情。

工厂的另一个好处是它抽象出存储怪物信息的细节。例如,您可以将前五个或十个怪物的信息硬编码到程序中以对其进行测试,但稍后重新实现工厂以使用磁盘上的数据库或文件来处理更大数量的怪物。只要您的工厂 API 保持不变,您的 Monster 类就不必关心这些细节;这一切都在工厂里。

于 2012-08-10T18:12:30.543 回答
-1

尽管它们都不会真正为怪物类添加任何东西。

第二种方法的好处是更容易在两个不同的怪物之间建立联系(比如进化树)

回答了你自己的问题。

于 2012-08-10T18:03:43.490 回答