2012-01-01 15 views
4

タスク:多くのクラスでいくつかのメソッドを使いたいです。メソッドは同じなので、クラスごとに実装する必要はありません。私の場合、私はアンドロイドSDKで作業し、サーバーにhttpリクエストを送信します。静的メソッドを持つ抽象クラス。あれは正しいですか?

問題:、それが動作

class abstract MethodsCarrier{ 

    public static void method1(){ /*something*/ } 
    public static int method2(){ /*return something*/ } 

} 

何も問題はありません。このような構成を使用するという考えがあります。しかし、このクラスを抽象的にすることについてはわかりません。それはまったく正しい方法ですか?

+1

CodeInChaosの提案は良いものです。抽象クラスは、通常、 'AbstractList'のように、サブクラス化が必要な基本クラスとして使用されます。 – blackcompe

答えて

6

パブリックコンストラクタを持たないfinalクラスが好きです。それは太陽がMathクラスでやったやり方なので、私はこれをjavaでこれを行う従来の方法と仮定します。


しかし、あなたの場合は、私は静的にしないでください。静的メソッドは、外部(またはグローバルに変更可能な)状態にアクセスしない副作用のない関数に適しています。 http要求は外部状態にアクセスします。

私はこのメソッドでインターフェイスを定義し、要求を行う実装を記述してから、IoCコンテナを使用してシングルトンコンテキストの消費コードに注入します。そうすれば、インターフェースを模擬することができるので、テスト中にhttpリクエストを行う必要はありません。

+1

+1。また、Javaの命名規則に準拠したメソッドを使用したいので、小文字で始めることをお勧めします。 –

+0

JB Nizet、ありがとう。私の質問を編集しました。 –

+0

CodeInChaos、ここでシングルトンを使用する簡単な例を教えてください。私はいくつかの解決法を見つけましたが、どちらを使うべきかはわかりません。 –

関連する問題