300種類のユニットがあると想像してください。各ユニットには異なる特殊能力があります。たとえば、unit18は木の近くにあると見えなくなります。Unit33とunit212は同じ能力を持っています。これらの300のユニークなユニットを巧妙な方法でモデル化するにはどうすればよいですか?
私には2つのアイデアしかありません。ユニットごとに1つのクラスを作成し、最終的に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
}
}
もう1つの解決策は、すべての能力を持つモノリスモンスターユニットクラスを作成することです。
私はこの投稿で説明されているようなデザインを考えました:http: //www.learn-cocos2d.com/2010/06/prefer-composition-inheritance/
私はすでにこの種のデザインを作ろうとしましたが、うまくいきませんでした。
私はすべての提案に感謝します。
前もって感謝します!