Android は開発中にソフトウェア アーキテクチャ パターンを必要とします。 MVC と MVP は、開発者にプロジェクト ファイルをモジュール化し、コードが確実にカバーされるようにする機会を与える、広く使用されているパターンです。
これにより、開発者の仕事が簡単になります。
主なポイント
- MVC (Model-View-Controller) は、アプリケーション データ、ユーザー インターフェイス、および制御ロジックを XNUMX つの異なるコンポーネントに分離し、モジュール性を促進します。
- MVP (Model-View-Presenter) もこれらの問題を分離しますが、ビューとモデル間の通信を管理するプレゼンター コンポーネントを追加します。
- MVC は複雑なユーザー操作を伴う大規模なアプリケーションにより適していますが、MVP は単純なインターフェイスを備えた小規模なプロジェクトに適しています。
MVC vs MVP
MVC は、アプリケーションをモデル、ビュー、コントローラーの 3 つの主要コンポーネントに分割するアーキテクチャ パターンです。モデルは、アプリケーションのデータとビジネス ロジックを表します。MVP は、MVC に似ていますが、いくつかの重要な違いがある別のアーキテクチャ パターンです。MVP モデルは、アプリケーションのデータとビジネス ロジックを表します。

MVC は、エントリー ポイントとしてコントローラーを持つソフトウェア構造です。 View レイヤーは、単一のユニットまたはクラスとして実装されます。
表示されている 3 つの層はすべて密接に関連しています。 したがって、変更を行うのは複雑になる可能性があります。
MVC パターンが MVP パターンに影響を与えたと言えます。ただし、MVP は UI プレゼンテーション パターンです。これは全体の手順を表しているわけではありませんが、ビューの構造を説明しています。
ビューは UI 要素を作成し、そのすべての要素は緩やかにまとまっています。
比較表
比較のパラメータ | MVC | MVP |
---|---|---|
意味 | MVC は、Model-View-Controller の略です。 | MVP は Model-View-Presenter の略です。 |
このエントリ ポイントは Controller です。 | このエントリ ポイントは View です。 | |
ビューとモデルの関係 | このアプリケーションは、モジュール式および単一責任の原則に従っています。 | ここで、ビューはプレゼンターを認識しています。 |
次のモジュラー | このアプリケーションは、単一の責任の原則を遵守したり、モジュラーに従ったりしません。 | このアプリケーションは、モジュラーおよび単一責任の原則に従います。 |
修正 | ここでの変更は困難です。 | ここでは、データの変更と修正はそれほど複雑ではありません。 |
MVCとは?
MVC パターンは、Model-View-Controller を暗黙的に示します。 コードは次の XNUMX つのセクションに分かれています。 開発者がアプリケーションのファイルを作成するときは、レイヤーの XNUMX つを選択する必要があります。
最初の層であるモデルは、アプリケーションのデータを保存する役割を果たします。 インターフェイスをまったく意識しません。 モデルには、データベース層およびネットワーク層と通信する役割があります。
ビューは、アプリケーションのユーザー インターフェイスまたは UI レイヤーです。 画面に表示されるコンポーネントが含まれています。 モデルに保存されるすべての視覚化されたデータは、View によって提供されます。
ユーザーはこれを操作できます。 最後の層であるコントローラーは、モデルとビューを接続するために開発されます。 ユーザーの行動を収集し、それに応じてモデルを更新します。
MVC のいくつかのマイナス点により、作業が困難になることがあります。 ここでは、ビューとモデルが密接に関連付けられています。
したがって、ビューの要件はモデルに影響を与え、ビジネス ロジックを低下させる可能性があります。 同時に、この密接な関係により、View の単体テストが困難になります。
何ですか MVP?
MVP パターンは、モデル - ビュー - プレゼンターを意味します。これは MVC の改良版であり、MVP を使用することで、開発者は実行したプロジェクト コードを効率的に構造化できます。
MVP の特徴により、開発者の間で非常に人気があります。 そのクリーンで保守可能なコード データベースとテスト容易性により、非常に便利です。
これには XNUMX つのコンポーネントもあります。 XNUMX つ目はモデル層で、データを保存するように設計されています。 ドメイン ロジック ルールを維持し、データベース層およびネットワーク層と通信します。
次の層であるビューは、このアプリケーションのユーザー インターフェイスです。 このレイヤーは、データのすべての視覚化を提供するとともに、ユーザーによるアクションを追跡してプレゼンターに通知します。
最後のレイヤーはプレゼンターで、モデルからデータを取得し、UI ロジックを使用して、何を表示するかを決定します。 ユーザーはビューに入力でき、MVP はそれに応じてビューの状態を整理します。
ただし、MVP にすべての問題がないわけではありません。 MVP のコントローラーが削除されます。
その結果、コントローラーの欠如を補うために、プレゼンターはフローに対処する必要があります。 したがって、最終的には、プレゼンターがモデルを更新してプレゼンテーションすることができます。
MVC と MVP の主な違い
- MVC は Model-View-Controller の略で、MVP は Model-View-Presenter の略です。
- MVC のエントリ ポイントは Controller ですが、MVP の場合、エントリ ポイントは View です。
- MVC アプリケーションでは、View は Controller に関する知識をまったく持っていません。逆に、MVP では、View は Presenter をよく認識しています。
- MVC では、コード レイヤーは密接にリンクされていますが、MVP では、コード レイヤーは緩やかに関連しています。
- MVC は密接にリンクされたコード層を運ぶため、データを変更するのは簡単ではありませんが、MVP の場合はコード層が緩やかに接続されているため、変更が容易です。
- MVC は単一責任の原則を順守しませんが、MVP はそれに従います。