2016-03-19 43 views
3

クリーンアーキテクチャ設計では、Interactoreはすべてのビジネスロジックを含む部分です。インターアクターという言葉は私にとってはかなり混乱しています。 Interactoreは、データとプレゼンターのような2つの異なるレイヤーの間でやり取りするのが好きなようです。混乱を招く用語クリーンアーキテクチャのインタラクタ

使用するのは正しいですか? 誰でもInteractoreの目的を明確にしていただけますか?どのパターンに従うの? もしインタラクティブが私にとってそうでないものなら、 のレイヤーのインタラクションのデザインパターンは何ですか?

+0

ユースケース:これらのユースケースは、エンティティとの間のデータの流れを調整します。 Interactorsとも呼ばれます.http://fernandocejas.com/2014/09/03/architecting-android-the-cleanway/ –

+0

したがって、Interactoreにはデータフローの管理とビジネスロジックの実行という2つの責任がありますか? – vsvankhede

+0

私は分かりません。あなたはサンプルを読むべきだと思います。 –

答えて

4

インタラクタは、「ビジネスロジック」の概念とは関係のないデザインパターンです。 Interactorパターンは、より詳細な詳細レベルではなく、Commandパターンの拡張です。各 "ビジネスロジック"オブジェクトは、クライアントのために実行される単純な命令である「ブラックボックス」として扱われ、操作を実行するオブジェクトを、それを実行する方法を知っているオブジェクトから切り離します。 (詳しい説明は参考文献を参照)。

アンドロイド環境では、プログラマにバックグラウンドスレッドで時間のかかるタスクを実行させるという単純なルールがあるため、インタラクタパターンはスレッドのレイヤーを追加する「コマンドパターン」を拡張します。この複雑なものは、スケーラビリティ、メンテナンス可能、(間違いなく)理解できるコードを必要とする「クリーンなアーキテクチャ」を作り出すために実装されています。

質問についてレイヤーの相互作用のデザインパターンは何ですか?それは状況に応じて、複数のリグの答えを持つことができます。エントリポイントとしてシンプルなInterfaceを使うことができるので、Adapterパターン、あるいはFacadeパターンを使うことができます。さらに進んだことをしたいのであれば、イベントバスシステムを実装することもできます。

ソース: デザインパターンは簡単に説明されています - auth Alexander Shvets。 (アダプター)、ページ32(コマンド)、ページ47(ファサード)

+0

my upvoteのようなこともできますが、例やリンクで編集してください。ありがとう – trocchietto

0

私が読んでいるところからは、MVP(Model View Presenter)アーキテクチャのPresenterに相当します。

ビジネスロジックであり、データの格納や表示は行いません。データの保存方法や表示方法とは独立した別のレイヤーを作成します。どんな形式の入力と出力も気にします。これはObserver、Adapter、Faaadeのパターンの組み合わせでコールバック、コードのジェネリックな拡張ポイント、非UIやデータストレージの使用のための分離されたエントリポイントとして使用できます。

私はInteractorと呼ばれていると仮定します。これは、値が計算され、表示されたUI要素が更新され、モデルオブジェクトと相互作用してデータを抽出するためです。また、CRUD操作のためのデータベースとやりとりすることもできますが、実際はビジネスロジックではないので、リポジトリパターンで主に扱われていると思います。

+0

okだから、実行のためのビューコールのように見え、コールバックのために彼自身を登録します。 – vsvankhede

+0

長時間実行されている操作に対してコールバックを使用することもできますが、 'interactor.computeValue(input)' –

0

MVPパターンです。はい、それは発表者とデータの間のメディエーター(残りの呼び出しや共有設定やSqliteの形式として)だと言っていました。