0

GUI を備えた多くのアプリケーションは、(おそらくいくつかのレベルで) オブジェクトのコレクションを処理していると見なすことができます。たとえば、連絡先のリストや一連のドキュメントです。さらに、アプリケーションに「現在のオブジェクト」(現在の連絡先、現在のドキュメントなど) の概念が存在し、一部の GUI コントロールがこの現在のオブジェクトに対して (コレクション内の他のオブジェクトではなく) アクションを実行する可能性があります。明らかに、GUI は、別のオブジェクトに新しいアクションを適用する前に、別のオブジェクトを「新しい現在のもの」として選択する方法を提供する必要があります。これは非常に一般的な状況だと思うので、MVC パターンのどこにそのような概念 (たとえば、リストの整数インデックス) を配置するかについては、非常に一般的な解決策があるかもしれません。

私はそれがモデルの外にあるべきだと感じています(1つのモデルを共有するいくつかのビュー/コントローラーのペアを持つアプリケーションと、各ビューがどのオブジェクトが選択されているか現在のオブジェクトであるかについて独自の意見を持っているアプリケーションを考えることができます)が、私はできませんでした「グーグル」で確認する。

このテーマについて議論している著者へのポインタを知りたいです。さらに、ご意見をお待ちしております (このフォーラムでそのような議論が許可されている場合)。ありがとう。

4

1 に答える 1

1

免責事項:の主な言語は PHP であり、Web のコンテキストでの MVC 関連のパターンの経験しかありません (Web 自体の明らかな制限のため、ほとんどの場合、その Model2 バリアントを使用します) 。

現在のオブジェクトの概念は、モデル レイヤーの状態の側面と考えています。現在のオブジェクトは、MVC トライアドの他の部分に直接公開されるべきではありません。コントローラーとビューの両方が、モデル層の上位/パブリック部分 (その部分を「サービス」と呼ぶ傾向がありますが、悪い名前です) を介してのみアクセスできます。

これにより、「現在」としてマークしたオブジェクトを自由に変更、操作、および交換できます。同時に、MVC の他の部分は直接影響を受けません。

主題に関する資料に関しては、この主題だけを扱った記事や本はあまり見たことがありません。私が提案できる最善の方法は、エンタープライズ アプリケーション アーキテクチャのパターンをもう一度読むことです。

于 2012-06-21T19:12:04.373 に答える