次のように私が設計を実装しようとしています:iPhone Objective-Cのforeachの設計
Touch
クラス:インタフェースとして機能し、いくつかのクラスが継承:
MoveTouch
クラス
JumpTouch
クラス
InterfaceTouch
クラスを
次に、Touch
オブジェクトのリストが必要です。私は次に、すべてのMoveTouch
オブジェクト(他のものではない)だけを外してから、この大きなリストの中から別のすべてのJumpTouch
オブジェクトを取り除きたいと考えています。残念ながら、for (MoveTouch* t in touches)
は私が望むことをしません。リスト全体のすべてが行動を起こします。
...これは、[t update]という呼び出しを実行し、各アイテムが更新サイクルで何をすべきかを決定することを意味します。しかしそれは普遍的ではありません。 1つのクラスに送信するメッセージがあり、別のクラスには送信しないメッセージがあるときは、たくさんあります。 –
普遍的ではありませんが、私の意見では、においがちです。特に、あなた自身がクラスをデザインしていることを示しているときは。 –
私は実際にこれで多型を行っていません。私の基本的な望みは、いろいろな種類のタッチを分ける方法でした。タッチの種類(Move、Jump、Interfaceなど)は、作成時に直ちに決定することができます。これは「touchesBegan」内で発生します。それ以来、あなたがそのタッチを動かすときに起こることの機能性を分離する方がはるかに簡単です。そうすれば、継承はちょっと想像してもらえますか?たぶん簡単な列挙型はうまくいくでしょうか? –