私は、単一ページの Javascript アプリケーションを構築するチームのメンバーです。私は主に Web バックグラウンド (Struts、Spring、Rails、Sinatra など) から来ており、MVC パターンの解釈が異なることを知っています。デスクトップ MVC (これは単一ページの Javascript アプリケーションに当てはまると思います) で見た 1 つのことは、それらがインスタンス化可能なモデルとシングルトン コントローラーおよびビューを使用していることです。つまりCompany.Book
、 、Company.recentlyPurchasedBooksController
、およびが存在する可能性がありCompany.recentlyPurchasedBooksView
ます。コントローラーはモデル (またはそのコレクション) のインスタンスを保持し、そのモデルが変更されるとビューが更新されます。
私のチームもウェブのバックグラウンドを持っていますが、これは非常に「魔法のようなもの」です。彼らは、コントローラーがビューのインスタンスを作成し、それにモデルを入力して、ページの一部にレンダリングするワークフローを強く好みます。
これにはいくつか異議がありますが、私の異議が実際に重要であるという個人的な経験はありません。1 つ目は、コントローラーが DOM を認識してはならないため、レンダリングする場所をビューに伝えることができないということです。彼らは、ビューはインスタンス化可能であるべきだと主張しています (「ページ上に複数のビューのコピーが必要な場合はどうすればよいですか?」)。
ブログの投稿、書籍、参考文献など、この議論を解決するのに役立つものはどこにありますか? 開発者の快適さのために MVC パターンを破ることは、長期的には純利益または純損失になりますか?