元の記事は、最初の公開のマイクロチャンネル番号「浮動バイト」に登場しました
Androidのアーキテクチャは主にMVC、MVP、MVVMとクリーンを使用します。アーキテクチャ設計パターン上記のキーは、特定のアプリケーションシナリオに依存し、絶対的に良いか悪いかではありません。MVC、MVPとMVVMのプレゼンテーションについての詳細は、を参照することができMVC、MVP&MVVM
クリーンなアーキテクチャとは何ですか?
2012年に発表されアンクルボブによってクリーンなアーキテクチャは、アーキテクチャは、Webアプリケーションのために設計されています。
アンクルボブは共通してまとめ、およびシステム・アーキテクチャの様々な究極の目標、そして唯一の階層や依存ルールの原則を守る提案する、クリーン建築思想を提案しました。
クリーン・アーキテクチャの分析
片道依存性
層の間のクリーンなアーキテクチャの依存関係は、外側の層が内側の層に依存して、単方向です。
MVP VSクリーン
Androidのは、実際にはより多くの人気のMVPアーキテクチャ変換であるフィギュア達成クリーンなアーキテクチャから見ることができます。
クリーンビューとプレゼンター層アーキテクチャプレゼンテーション層、新しいドメイン・レイヤーのすべてのビジネス・ロジックの処理として、MVP。MVP関数のモデル層は、外部データ層への唯一のインターフェイスとして、弱体化され、何のビジネスロジックはありません。一般的には独立したデータモデル各フロア。
プレゼンテーション層をきれいに
これは、次のカテゴリが含まれています。
- 発表者層と関連クラスは、もちろん、あなたがMVVPフレームワークの基礎を変換することができます。
- マッパークラスは、データモデル層は、プレゼンテーションデータモデルを変換ドメインに責任があります。
- 例外クラスの封入層が存在します。
ドメイン層をきれいに
ドメイン層は、サードパーティのライブラリやライブラリのAndroidに依存しない、ユニットテストは、独立して行うことができます。
これは、次のカテゴリが含まれています。
- ケース(インタラクタ)カテゴリを使用して、データ層に対する操作の完了を担当しています。(このような映画のリストへのアクセスとして、映画を取得する詳細情報ユースケース2やインターアクターとみなすことができます)。
- マッパークラスは、データモデル層のData Domain層にデータモデルを変換するための責任があります。
- 例外クラスの封入層が存在します。
データ・レイヤーをきれいに
ロバートC.マーティンからの写真(アンクルボブ)
この図は、すべてを説明するのに十分です。
これは、メインデータベース操作、データ操作、およびネットワークファイル操作、いくつかの珍しいクラスパッケージに対応する、様々なAPIインターフェースを含みます。
ネットワーク・データ・モデルを変換するための責任マッパークラスは、データモデルのデータ層です。
唯一の界面層は、データなしのビジネス・ロジックを提供していることに注意してください。
Androidのクリーンアーキテクチャの実装
クリーンなアーキテクチャとレトロフィット、RxKotlin、ダガーフレームワークベースの実装のAndroid AppのKotlin。
参照
- https://github.com/googlesamples/android-architecture/tree/todo-mvp-clean/
- https://fernandocejas.com/2014/09/03/architecting-android-the-clean-way/
連絡先との交流
マイクロチャネル公共数
個々のマイクロ手紙