質問: 「iOS開発におけるパターンによるオートマティズム」という本を読んで、MVCのモデル部分ではモデルクラスとそのモデルクラスを管理するモデルマネージャークラスの2パターンを作ると書いていたのですが、このモデルマネージャクラスというのはプロジェクト全体のモデルクラスのインスタンスを保持するものなのでしょうか? 僕は今の所次のように理解しており、あるモデルクラスの値を取って来たい時にはまずモデルマネージャクラスにアクセスして、そのモデルマネージャクラスにあるモデルクラスのインスタンス一覧の中から自分の目当てのモデルクラスにアクセルして情報を取得するというように理解しています。しかしこれだとわざわざモデルマネージャクラスを作る意味がなく、そのまま直接シングルトンの目当てのモデルクラスにアクセスすればいいのではないかと思います。また、この本にはモデルマネージャクラスで配列の操作を行い、モデルクラスの配列は直接操作しないと書いているのですが、なぜモデルクラスの配列を直接操作してはいけないのでしょうか?ViewControllerから ``` [[XXModelManager getInstance].person addObject......] ``` というようにしても何の問題もないように思うのですが......。 本当にMVCを実現するためにはモデルクラスの他にモデルマネージャクラスを定義した方がいいのでしょうか? どなたかわかる方がいれば教えていただきたいです。よろしくお願いします。
回答: モデルクラスやモデルマネージャクラスと言うのは、その筆者の自己流な話で、MVCパターンを実装するさいの一般的な話ではありません。 そもそもその本は、MVCパターンを解説する主旨の本じゃなかったはず。 あるアプリケーションの機能モデルをどのように実装するのかは、はっきり言ってケースバイケースです。