X(Twitter) Zenn GitHub RSS 共有

ソフトウェアアーキテクチャ

作成日時:2024-08-01以前
更新日時:2024-08-01

Webアプリケーション開発者から見た、MVCとMVP、そしてMVVMの違い #MVVM - Qiita

MVC(原初のMVC)
U -> C -> M -> V -> U。

MVC(Model2MVC=webのMVC。WEB向け)
U -> C -> M -> C -> V -> U。

MVP
U -> V -> P -> M -> P -> V -> U

原初のMVCとMVPを比べれば違いが分かった
ModelとViewを疎結合にしている。

Cが忙しいからファットコントローラーになる。

MVPとMVVMの違いは、
MVPはViewがPresenterに処理を委譲している。
MVVMはViewがViewModelを介してデータを取得している。データバインディング。

Claudeに聞いたMVC / MVP / MVVM

Model2MVC、MVP、MVVMは、ソフトウェアアーキテクチャの異なるパターンです。
それぞれが、モデル(データ)、ビュー(UI)、およびコントローラー(アプリケーションの振る舞い)の間の役割と責任を異なる方法で分配します。
以下にそれぞれのアーキテクチャの要点を示します。

Model2MVC(Model2 Model-View-Controller)

Model2MVCは、従来のMVC(Model-View-Controller)のウェブアプリケーションでの使用を拡張したものです。
クライアントとサーバーの間でモデル、ビュー、およびコントローラーの役割が分離されます。
サーバーサイドでは、コントローラーがリクエストを処理し、ビジネスロジックを実行し、モデルを更新します。
クライアントサイドでは、ビューが生成され、ユーザーインターフェイスを表します。

MVP(Model-View-Presenter)

MVPは、ビューとモデルの間にプレゼンターがあり、ビューはユーザーインターフェイスを表示し、
プレゼンターはビジネスロジックを含むコントローラーの役割を果たします。
プレゼンターは、ビューとモデルの間の仲介者であり、ビューからのユーザーアクションを処理し、
必要に応じてモデルを更新してビューに反映します。

MVVM(Model-View-ViewModel)

MVVMは、ビューモデルがビューとモデルの間の仲介者となるアーキテクチャです。
ビューモデルはビジネスロジックを含み、ビューからのユーザーアクションを処理し、モデルの状態をビューにバインドします。
ビューは、ビューモデルの状態に応じて自動的に更新されます。
それぞれのアーキテクチャには、異なるメリットとデメリットがあります。プロジェクトの要件や特性に応じて、
適切なアーキテクチャを選択することが重要です。