私は覚えているので、私はiOSアプリケーションを作ってきましたが、最近私がインターンシップのプログラミングをしてからは、プログラミングスタイルが熟していません。私は人生が彼らの理解から吸い込まれたことに気づいたので、早い段階で多くのOOの概念を学びましたが、私が自分で決して学ばなかったことの1つはMVCパターンでした。モデルをMVCパターンで所有する必要はありますか?
コンテキストを与えるために、単一のSolarSystemView
(サブクラスUIView
)の中に太陽系を描いているとしましょう。私のSolarSystemView
はクラスSolarSystem
(すべての重要な惑星と惑星のプロパティを持つデータ構造を含むクラス)のインスタンス変数を持っているか、またはSolarSystemViewController
のインスタンスの所有権の下にあるべきですか?それとも全く違うものなのでしょうか?私は満足のいく答えを与えるサンプルコードを見つけることができません。
ビューがモデルを所有していた場合、操作は非常にスムーズになりますが、それはまた良いスタイルのように感じられません。結局のところ、SolarSystem
のインスタンスは、何らかの形で動的に変更しなければならず、SolarSystemView
の更新と同じか、それと同じ割合で変更する必要があります。
それは私が尋ねたものを完全にカバーしています。私はもう一つ質問があります。 「ダニ」は何をすべきか?明らかに、惑星が移動し続けるための目安になる必要があります。私が正しく理解していれば、タイマーを所有するコントローラーになります。その時点で、モデルが変更され、モデルからデータが取得され、画面に表示されます。これは、別の質問のための内容かもしれません。 –
@CarterPapeはい、それは私に聞こえます。コントローラは、通常、モデルの更新を処理し、それに依存するビューに更新を通知します。例えば、コントローラにはゲームの実行ループが存在し、ビュー(GLKViewなど)に自身を更新するように通知する前に、ゲーム内のエージェント(モデル)に更新を通知するすべてのフレームが存在します。 – Metabble