0

これは私の最初の実際の Android アプリケーションであり、コードを簡単に管理できるように、少し大きくなるため、適切なデザイン パターンを使用して開始したいと考えています。Android で 3 層アーキテクチャと「MVC」を一緒に使用できますか? 「.net」で使用しましたが、とても良い選択でしたが、Androidで使用できるかどうかはわかりません。

この質問を確認しましたが、まだ混乱しています。MVC と MVP の違いを理解できません。また、MVC または MVP で n 層を使用してまとめることによるコメントが見つかりません。

4

3 に答える 3

2

人々が使用可能なアーキテクチャを示したり、1 つのアーキテクチャを標準として崇拝したり、現代の問題に適用された古い方法について本全体を書いたりする多くのガイドがあります。これらとは異なり、これは大まかな答えにすぎません。

Android では、アクティビティ/フラグメントに MVC または MVC バリアント (MVP/MVVM/...) を使用することをお勧めします。アプリ全体に 3 層アーキテクチャを適用できます。

プレゼンテーション層

MVC またはバリアントは、プレゼンテーション層に適用されます。プレゼンター/コントローラーは、ビュー、インフレーションと変更、onclick イベントなどの UI コントロール バインディング、このビューだけにバインドされているいくつかの効果などを処理します。

ビジネスレイヤー

これがビジネスロジックです。ワークフロー、プロセス、ルールなど...

データレイヤー

データ処理はここで行います。

他人

保守性とテストの両方のために、これらの 3 つのレイヤーに物事を保持することは良いスタートです。これは、Android または iOS の両方での私のアプリの基本的な概要ですが、これらの 3 つのレイヤーにすべてを常に押し込んでいるわけではありません。たとえば、Bluetooth デバイスをスキャンするためのコンポーネント、バックグラウンド (またはその他のバックグラウンド サービスおよびタスク) でダウンロードを実行するためのコンポーネント、または完全なコントロール セットを備えたカメラ プレビューを追加するためのコンポーネントです。ライブラリを作成してインポートする手間をかけずに再利用できるように、それらを別々に保管しています。

于 2016-04-03T14:22:00.423 に答える
0

MVC の Model と View は、それぞれ Intermediate (ビジネス ロジック) と 3 層 (お好みで 3 層) の Presentation に対応すると考えることができます。

MVC のモデルにデータ層が含まれていると仮定すると、モデルは中間層とデータ アクセス層の両方に対応します。これを Model1 と呼びます。

この Model1 (中間およびデータ アクセス レイヤー) と View (プレゼンテーション) の間にコントローラーを導入すると、MVC/3 層アーキテクチャーになります。

ただし、View が Model1 を更新することを禁止すると、3 層/MVC アーキテクチャ、つまり、3 層で発生するように、ビューがモデルを直接更新できないアーキテクチャになります。前3段の名前。

于 2016-06-07T14:55:13.823 に答える
0

一般的に質問に答えるには、はい。

MVC (または MVP) の定義では、3 つの層があります (線形ではありませんが、三角形になっています)。

  1. プレゼンテーション (ビュー)
  2. ロジック層 (コントローラー/プレゼンター)
  3. データ層 (モデル)

Android の真の n 層アーキテクチャを妨げるものは何もありません。たとえば、XMLSharedPreferencesフラット ファイルまたは SQLite を永続データ レイヤーとして使用し、SqliteOpenHelperクラスを次の層としてデータの読み取りと書き込みを行うことができます。データは に渡されAdapter、一部の に表示されますListView

ローカル ファイルシステムから離れて、ネットワーク リクエストを使用して、データ ストレージ レイヤーと通信するリモート API レイヤーと通信します。

于 2016-04-03T14:46:09.270 に答える