我应该在这种情况下真正制作子类吗?

use*_*400 0 oop subclass objective-c

我正在完成一个小项目,一个iPhone游戏.

我一直在扩展我的GameObject类,包括通电和地雷.它们在物理上彼此相同.

昨晚深夜,我提出了制作两个GameObject子类的天才想法.它们每个不到一百行.我还必须做一些事情,比如在迭代GameObjects列表时将它们转换为各自的子类,在NSStrings和类之间进行转换......等等.

现在我只是摆脱了那些类,并在我的类中添加了一个int(ID)和NSString(类型).它实际上是对象所需的所有信息,并且到目前为止运行良好.

这是否违背了一些明显的OOP,或者对于这么小的东西来说这是正常的吗?或者我应该一起做些不同的事情吗?

Ano*_*on. 5

我还必须做一些事情,比如在迭代GameObjects列表时将它们转换为各自的子类

为什么?

如果你必须这样做,你实际上没有OO设计.

  • 是的,我们的想法是将对象视为GameObject而不必知道它是一个子类.此外,我所阅读的大部分内容都表明,只有在需要时才应谨慎使用继承.在适当的时候使用其他方法(例如,组合或您提到的实例变量)没有任何问题. (2认同)