MVPとクリーンアーキテクチャの違いは何ですか


13

私の考えを追加するために、質問は自明です:
私が読んだ限り、Clean archのプレゼンテーション層は、MVPのMVと同じ責任を負っています。

あるパターンを他のパターンではなく選択する方法は?


MVPはクリーンアーキテクチャの一部です。この記事はandroidwave.com/android-mvp-architecture-for-beginners-demo-app
スーリヤプラカシュクシャワ

回答:


15

ボブ・マーティンが「クリーンアーキテクチャ」と呼んだものは、「メタアーキテクチャ」であり、階層化アーキテクチャを作成するための高レベルのガイドラインです。次のようなことは言わない

「モデルレイヤー、ビューレイヤー、プレゼンテーションレイヤーが必要です。MVPを使用して実装する必要があります」、

「依存関係は外側の円から内側の円へ、その逆ではなく」のような、レイヤーに関するより一般的なルールのみが含まれています。また、MVPでは、ビュー(= UI)はプレゼンターを知っているかもしれませんが、プレゼンターはインターフェースによってビューから切り離されているため、MVPはこのルールを満たす多くの可能なソリューションの1つにすぎません。

もちろん、「クリーンアーキテクチャ」システム内でMVPを使用できますが、これが唯一の正しいアプローチではありません。「内部層」がUIについて特別なことを何も知らず、UIがBob Martinの記事で説明されている他の「Clean Architecture」ルールにも従うUIデザインは問題ありません。


MVPパターンに従う場合、Cleanアーキテクチャルールに違反していないことが保証されますか?
Mehrdad Shokri

1
@Mehrdad:いいえ。MVPは、「依存関係ルール」を正しく表示するのに役立ち、View&Presenterレイヤー間だけでなく、PresenterとModel間でも、それ以上でもそれ以上でもありません。Bob Martinの記事に記載されている他のすべてのことに注意する必要があります。たとえば、MVPだけでは、レイヤー間で複雑なデータ構造を渡すことを妨げることはありません(この記事で言及されている境界を越えるために使用される単純なデータ構造とは対照的です)。
Doc Brown
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.