こんにちは、私は、「アクティビティ」、「サービス」とAndroidで「FragmentActivity」のサブクラス化を必要とするかなり複雑なアプリケーションを持っている(しかし、この質問は同様に、純粋なJavaでまだ有効である)異なるクラス間でコードを共有するには?
3の各クラスは、 "My Layer"内の一連のユーティリティで拡張されます。 Toastや特定の方法で構成を処理したり、ディスク上のファイルを読み取ったりする特定の方法。
今、私は共通のインターフェイス(MyUtilities)をすべての3種類のクラスに対して作成しました。
public class MyActivity extends Activity implements MyUtilities
public class MyFragmentActivity extends FragmentActivity implements MyUtilities
public class MyService extends Service implements MyUtilities
public class MyActivity1 extends MyActivity
public class MyFragmentActivity1 extends MyFragmentActivity
public class MyService1 extends MyService
しかし、これにより、インターフェイスでフィールドとメソッドを定義することができないため、3つのすべてのクラスの共通メソッドをコピーして貼り付けることになります。それを行う良い方法はありますか?コードをコピーすると、長期的にエラーが発生しやすくなります。
私は抽象クラスを見ましたが、この場合にどのように使用するかはわかりません。理想的には私はそれが明らかに許可されていませんが、私の問題を解決することになる
public class MyActivity extends Activity, MyUtilities
のような「二重延長」に必要なもの。
アイデアをお願いしますか?
ありがとうございます!
PS:私はすでに要求され、here'a簡単な例として
可能な限り共通クラスの静的メソッドを使用しています。 3つのオブジェクトの各コンフィギュレーション・フィールドをサポートできるようにする必要があり、それぞれがインターフェイスに行く次
private Configuration config
public Configuration getConfiguration(){return config;}
public void setConfiguration(Configuration cfg){this.config=cfg;}
が方法が存在することを要求するのに役立ちますが、私はまだコピーする必要があるとペーストコードIドン含まれてい本当に好きです。
もっとコードを共有してください。答えは、分離されたクラスのメソッドで論理を抽出することです。しかし、より良い助けをあなたのコードを共有するために。 – Ele
ありがとう、私はメインテキストの簡単な例を追加しました – Lele