Android は開発中にソフトウェア アーキテクチャ パターンを必要とします。 MVC と MVP は、開発者にプロジェクト ファイルをモジュール化し、コードが確実にカバーされるようにする機会を与える、広く使用されているパターンです。
これにより、開発者の仕事が簡単になります。
主要な取り組み
- MVC (Model-View-Controller) は、アプリケーション データ、ユーザー インターフェイス、および制御ロジックを XNUMX つの異なるコンポーネントに分離し、モジュール性を促進します。
- MVP (Model-View-Presenter) もこれらの問題を分離しますが、ビューとモデル間の通信を管理するプレゼンター コンポーネントを追加します。
- MVC は複雑なユーザー操作を伴う大規模なアプリケーションにより適していますが、MVP は単純なインターフェイスを備えた小規模なプロジェクトに適しています。
MVC vs MVP
MVC は、アプリケーションを XNUMX つの主要コンポーネント (モデル、ビュー、コントローラー) に分割するアーキテクチャ パターンです。 モデルはアプリケーションのデータとビジネス ロジックを表します。 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 パターンは Model-View- を意味しますプレゼンター。 これは 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 はそれに従います。
- https://ieeexplore.ieee.org/abstract/document/5567323/
- https://research.tue.nl/files/48628529/Lou_2016.pdf
最終更新日 : 11 年 2023 月 XNUMX 日
Sandeep Bhandari は、Thapar University (2006) でコンピューター工学の学士号を取得しています。 彼はテクノロジー分野で 20 年の経験があります。 彼は、データベース システム、コンピュータ ネットワーク、プログラミングなど、さまざまな技術分野に強い関心を持っています。 彼の詳細については、彼のウェブサイトで読むことができます バイオページ.
MVC と MVP の複雑さをこれほど分かりやすい方法で解説した筆者に敬意を表します。
これ以上同意できません! MVC と MVP の表は、この 2 つの間のニュアンスを理解するのに特に役立ちました。素晴らしい作品です。
この記事では、ソフトウェア アーキテクチャのより複雑な技術的側面にもアクセスできるようにしました。著者に敬意を表します。
MVC と MVP の内訳は両方とも包括的で魅力的でした。非常に賞賛に値する作品。
これは非常に有益でした。 MVC と MVP の違いがこれほど明確で明確であるとは知りませんでした。今後、これらの原則をソフトウェア アーキテクチャに確実に適用していきます。
MVC と MVP の両方について詳しく説明し、それぞれの利点と欠点を強調しているのは素晴らしいことです。全体的によく研究された作品。
MVC パターンのビューとモデル間の密接な関連により、特により複雑なアプリケーションの場合、単体テストが困難になるのは残念です。 MVP の疎結合は、この問題を非常に効果的に解決します。
ソフトウェア アーキテクチャ パターンに関する洞察力に富んだ議論を見るのは新鮮です。 MVC と MVP の比較は啓発的でした。
同意します。 MVP の構造により、より効率的なテストとトラブルシューティングが可能になります。
MVC が大規模なアプリケーションにより適しているという意見には、謹んで反対します。 MVP の設計の柔軟性は、大規模なプロジェクトにも役立ちます。