知りたいのですが、Android が MVC (Model View Controller) 構造をサポートしているかどうか。サポートする場合 1. Controller とは?2.モデルとは?と 3. ビューとは何ですか?
私をクリアしてください。私はこれについていくつかの混乱を持っています。
知りたいのですが、Android が MVC (Model View Controller) 構造をサポートしているかどうか。サポートする場合 1. Controller とは?2.モデルとは?と 3. ビューとは何ですか?
私をクリアしてください。私はこれについていくつかの混乱を持っています。
Android ではどのデザイン パターンが使用されていますか?
Model-View-Control は正常に動作します
実際の
Activity
クラスは android のクラスを拡張しませんが、ユーザーへのウィンドウの表示を処理し、View
そのウィンドウのイベント (など) も処理します。onCreate
onPause
つまり、MVC パターンを使用している場合、コントローラーは実際には疑似 View-Controllerになります。ユーザーへのウィンドウの表示を処理しているため、 で追加した追加のビュー コンポーネントを使用し
setContentView
、少なくともさまざまなアクティビティ ライフ サイクル イベントのイベントを処理します。MVC では、コントローラがメイン エントリ ポイントになるはずです。
activity
ほとんどのアプリケーションの自然なエントリ ポイントであるため、android 開発に適用する場合にこれが当てはまる場合、これは少し議論の余地があります。
モデル= 主なビジネス ロジックを持つエンティティまたはクラス
View = レイアウト、リソース、ウィジェットなどEditText
コントローラ= Activity
、Adaptor
モデル= コンテンツ プロバイダー。
コントローラー= アクティビティ、フラグメント、またはサービス。
ビュー= XML レイアウト。
MVC はすでに Android に実装されています
View = レイアウト、リソース、および android.view.View から派生した Button などの組み込みクラス。
コントローラ = アクティビティとフラグメント
モデル = アプリケーション ロジックを実装するクラス
従来の MVC では、コントローラーは意思決定、つまり次に実行するアクションに関するものです。ビューはモデルからデータを読み取り、独自のフィールドを更新します。
Android アクティビティでは、イベントに応じて実行するアクションを決定し、レイアウトのフィールドを設定します。また、モデルからデータを読み取り、ウィジェットを接続します。アクティビティは、従来のコントローラーと従来のビューの両方の論理タスクを結合します。
これが、ほとんどの場合、MVC について話さない理由です。コントローラーとビューの間に明確な分離はありません。Java コードと XML リソースは明確に分離されています。これは理にかなっています。大規模なチームでは、ビジュアル レイアウトとプログラミングを担当する担当者が異なるためです。
独自のビュー コンポーネントをコーディングして、コードのこの部分をビューとして扱うこともできます。これは従来のビューの受動的な部分に過ぎず、ロジックはアクティビティとフラグメント内のコントローラーに結合されています。ビューについてではなく、コンポーネントまたはウィジェットについて話します。ウィジェットがよりインテリジェントになればなるほど、それらが再び取り上げる従来のビューのロジックが増えます。
一方、Room Android などのライブラリを適用すると、再び MVC が大幅に増加します。Room と LiveData を使用すると、ビューでモデルの変更をデータベースの変更に至るまで観察できます。ビューのものをきれいに分離し、コントローラーを意思決定に減らすと、MVC という名前に本当にふさわしい方法でアーキテクチャを構築できます。
それは開発者次第です。実際の MVC を Android に適用することは可能ですが、デフォルトのケースではありません。