2016-10-13 15 views
0
/MyProj 
|---/MyApp (application module) 
    |----/MyData 
     |----class Person 
|---/MyLib (library module) 
    |----/MyMethod 

私はクラスPersonを定義します。Android:ライブラリモジュールは、アプリケーションモジュールで定義されたクラスをどのように使用しますか? MyDataで

public class Person{ 
} 

は、どのように私は、ライブラリモジュールであるMYLIBのMyMethodは中の人を参照することができますか?

私はMyLibのPersonを再定義したくありません。

答えて

1

これをmyLibに入れたいのであれば、myLibに間違っている依存関係としてappモジュールを追加し、循環依存関係を作成する必要があります。

階層化されたデザインパターンの循環依存を防止するために、モデルクラスをセパレートモジュールに配置し、他のすべてのモジュールがそれらを使用できるようにします。私はあなたが、あなたはそれだけの依存関係のこのシーケンスによってアクセスできるモデルモジュールを作成し、その中で、すべてのデータモデルを置くことであることを示唆している何

アプリケーション - > MYLIB - > ModelModule

このappとmyLibの両方でモデルクラスを使用できます。 (あなたは単にMyLibをAppの依存関係にし、ModelModuleをMyLibの依存関係にする必要があります)

もう一つの簡単な方法は、モデルをmyLibに移動することです。

+0

はい、私はMyLibの依存関係としてアプリケーションモジュールを追加しようとしていましたが、アプリケーションモジュールが依存関係にはならないことを示唆しています。また、それは間違った循環依存関係を作ります。 MyLibにPersonを移動することはできません。クラスの新しいライブラリは、MyAppで定義されているいくつかのメソッドを呼び出しました。私はそれが多くのコードを伴うためにすべてを動かすことはできません。 – hyyou2010

+0

常にトレードオフがあります。きれいなコードが必要な場合は、それを支払う必要があります;)usetクラスがデータモデルクラスであれば、そのクラス内の関数を実行するべきではありません。完全なモデルレイヤーを移動する必要があります。他のクリーンな方法は私を信じていない –

関連する問題