想象一下,你有 300 个不同类型的单元。每个单位都有不同的特殊能力。例如,如果 unit18 靠近一棵树,它就会变得不可见。Unit33 和 unit212 具有相同的能力。我怎样才能巧妙地为这 300 个独特的单位建模?
我只有两个很烂的想法。要么为每个单元创建一个类,最终得到 300 个类。每次我必须检查时都会有这样的构造:
for (Unit *unit in units)
{
if ([unit isKindOfClass:[Unit1 class]])
{
// do something
}
else if ([unit isKindOfClass:[Unit2 class]])
{
// do something
}
else if ([unit isKindOfClass:[Unitxxx class]])
{
// do something
}
}
另一个解决方案是创建一个具有所有能力的单体怪物单元类。
我想到了一个类似这篇文章中解释的设计:http: //www.learn-cocos2d.com/2010/06/prefer-composition-inheritance/
我已经尝试过进行这种设计,但没有成功。
我感谢每一个建议。
提前致谢!