Google Playストアで使用可能なアプリを準備しています。フラグメントを使用する際にコードが重複しないようにするための最良の方法
私は既にいくつかのメソッドでBを拡張するクラスを持っていますが、今はCがFragmentActivityを継承しているので、クラスAと同じメソッドを使う必要がありますが、FragmentActivityを拡張しているので、クラスBを使用するので、クラスAと同じ重複メソッドがありますが、メソッドを再利用する必要があります。この例は、以下の
は、私の状況を示しています
例:断片を統合した後
現在の実装
class A extends B{
one();
two();
}
、
例:
class C extends FragmentActivity{
one();// same methods as in class A
two();// same methods as in class A
}
1)この場合、メソッドを再利用する最も良い方法は何ですか?
2)クラスを作成してメソッドを静的にし、AクラスとCクラスの両方でメソッドを再利用するようなアプローチがありますが、私のアプローチは良いですし、静的メソッドを作ることができますそれは良いアプローチですか?
3)私が考えているもう1つのアプローチ"戦略パターン"
Eg:
class A extends ApiClass {
private ClassContainingDupMethod strategy;
}
class N extends AnotherApiClass {
private ClassContainingDupMethod strategy;
public methodCallingDupMethod(){
strategy.dupMethod();
}
}
class ClassContainingDupMethod{
public dupMethod(){;}
}
"Strategyパターン" です。良いアプローチですか?私は両方のクラスで共通のクラスのオブジェクトを作成する必要があります。
これについてのご意見はありがとうございます。
あなたの質問をより明確にすると、より理解しやすくなります。 –
@VipulPurohit私の編集 – Goofy
を参照して、方法1と2の役割/目標についての詳細情報を提供する必要があります。それらをサービスメソッドとして抽出して静的にすることや、これらのメソッドを使用するすべてのクラスで、クラスへの参照(実装されたメソッドを含む)を含む「Composition」を使用することが可能です。 – hovanessyan