現在、Objective-C (iPhone 用) でゲームを作成しています。
このため、パフォーマンス/複雑さの理由から MVC を少し壊し、ビュー (レンダラー) にモデルへの直接参照を与えています。これは、60 fps で実行されることが想定されており、モデルの状態に基づいて常に更新されているためです。
モデルの他のクラスがそれらにアクセスして設定する必要があるため、モデルのヘッダー ファイルに読み書き可能なプロパティがあります。しかし、それらは私の見解では読み取り専用として機能するはずです。したがって、パブリック/プライベート メソッドを分離する必要があるという問題があります。
これに対する典型的なアプローチは、ビューがインポートする通常の「Xh」ヘッダーと、他のモデルクラスが内部で使用するための別の「X_private.h」を持つことだと思います。
私の Java 開発者の友人は、プロトコルを使用した別のアプローチを提案しました。
彼は、ビューが参照するパブリック メソッドを含む「IX.h」のような NSObject のプロトコルを作成することを提案しました。次に、クラス (Xh/Xm) のヘッダーに (モデル全体に関して) プライベート メソッドを設定し、そのクラスにプロトコルを実装させるだけです。
抽象化のレイヤーをさらに追加するので、これはかなりクールに思えます。基になるモデル クラスとその動作を変更することにした場合でも、パブリック プロトコルを実装している限り変更できます。ビューは、モデルが実際にどのクラスを下で使用しているかさえ知りません。
このアプローチの明らかな欠点は見当たりませんが、Objective-C で以前に行ったことはありません。
これは良いアプローチですか、それとも何か不足していますか?
この問題に対する他の良いアプローチはありますか?