2

MVC自体の概念は私には明らかなようですが、概念が複数のビューとコントローラーに「スケールアップ」する方法を理解するのに苦労しています。

Cocoaは、モデルとビューの間の「スイッチボード」であるコントローラーのアプローチを採用しているようです。複数のビューの場合、アプリケーションはどのように編成され、機能しますか?すべてのビューに関連付けられたコントローラーがある場合、メインアプリケーションは、生成するすべてのコントローラーを追跡する必要がありますか、または各コントローラーは、インスタンス化する「ネストされた」コントローラーを持っています。たとえば、アプリケーションはウィンドウを作成し、ウィンドウはウィンドウを作成します。ツールバーなど?

アプリケーション全体が同じモデルで動作する必要がある場合、またはモデルをより小さなモデルに分割する場合はどうなりますか?

私が本当に求めているのは、モジュラーMVC構造を維持しながら、マルチウィンドウ/ビューアプリケーションを論理ブロックに分割する方法のようです。私はWordPressiPhoneアプリとAdiumのコードを調べようとしましたが、どちらも比較的大きなコードベースを持っているようで、迷子になっています。

4

1 に答える 1

2

通常、コントローラーは階層的に実装されます。たとえば、標準の Cocoa ドキュメント アーキテクチャでは、 のNSDocumentController複数のインスタンスを管理する がありますNSDocument。の各インスタンスは のNSDocument1 つまたは複数のインスタンスを管理し、 のNSWindowController各インスタンスは のNSWindowController1 つまたは複数のインスタンスを管理できますNSViewController

階層を下に移動するにつれて、コントローラーはより具体的になり、その責任がきめ細かくなります。モデルへのアクセスに関して、Cocoa にはデリゲート パターンやデータソース パターンなどのいくつかのパターンがあり、ビューがモデル自体について何も知らなくてもビューを描画できるようにするために使用できます。

通常、アプリには単一の統一モデルがありますが、異なるモデルを使用することが理にかなっている場合 (たとえば、アプリでさまざまな種類のドキュメントを編集する必要がある場合など) は除きます。

于 2010-04-22T00:14:05.197 に答える