私は HMVC と、現在の MVC アプリでそれをどのように、または考慮する必要があるかを理解しようとしています。
[this][1] MVC アーキテクチャに関する質問からのこの引用については、
Hierarchical-Model-View-Controller (HMVC) パターン (別名 Presentation-Abstraction-Control) は、より複雑なインターフェイスやアプリケーションの要求に対処するのに適している場合があります。
「しかし、従来の MVC スコープは、GUI 要素 (ウィジェット) の制御に関しては不十分です。MVC は、データ管理、イベント管理、およびアプリケーション フローの複雑さを処理しません。MVC トライアドの適応として、HMVC - - Hierarchical-Model-View-Controller -- パラダイムは、上記の問題のいくつかを是正しようとしています。」
Jason Cai、Ranjit Kapila、および Gaurav Pal (2000 年 7 月)。「HMVC: 強力なクライアント層を開発するためのレイヤード パターン」. JavaWorld マガジン。
[1]: https://stackoverflow.com/questions/113602/when-to-use-mvc-architecture
私は PAC/HMVC を理解しようとしてきましたが、上記の文章は心に響きました。HMVC のトライアドの抽象化は、ページの「ウィジェット」に適用できます。または、ASP.Net ビュー エンジン (対 Razor ビュー エンジン) を使用してページの「コントロール」に変換する方法です。
それは HMVC パターンの正確な適用でしょうか?
もしそうなら、それがどのように実装されるか正確にはわかりません。メインページが正常にロードされ、ユーザーコントロール/ウィジェットの一部がエラーアウトした場合、ページは引き続きロードされるという点で、これの利点がわかります。
では、メイン ページ コントローラーはそのウィジェット コントローラーを呼び出すのでしょうか? メイン ビューから、単純な MVC ページのビューでモデルのオブジェクトを使用するのと同じように、モデルの継承が有効になると推測しています。
これはコードではどのように見えるでしょうか? トップレベル ビューからチェーンをたどって、たとえば 2 つまたは 3 つのトライアドからモデル データを呼び出しますか?