2017-01-09 5 views
0

私は、以下の例のような静的メソッドを使用すると、良いか悪いのかという疑問があります。私にあなたの考えを教えてください:)Javaの静的メソッド - ベストプラクティス?

class SomeClass{ 

    static String appendString(String text){ 
     return text + "a"; 
    } 
} 

これは純粋な例ですが、私はこの種の方法をたくさん使っています。常に私は必要なすべてのパラメータを渡しているので、メソッドクラスのコンテンツを使用しないでください。

+1

あなたのビジネスロジックに依存しますが、ダイナミックロジックを追加する必要がなく、常に "a"という値を追加すると問題はありませんが、何が必要か、また4つの方法同じことを行い、 "a"の値を変更すると、コードを再利用するために別のアプローチを使用します。 – cralfaro

+0

'static'メソッドは問題ありません。 'SomeClass'のインスタンスを回避することを避けようとしているため単純に使用しないでください。メソッドをモックする必要があるポイントに達するでしょう(そして、それはいつもあなたが期待するよりも早くなります)。あなたは本当に詰まっています。 –

+0

Okey、ありがとう。私がAndroid用のコードを書いているときに、そこにはどんな違いがあるのでしょうか? – linean

答えて

3

一般に、静的メソッド呼び出しの結果は、副作用がありませんが、この方法に問題はありません。

あなたが覚えておかなければならないものは1つありますが、静的メソッドを呼び出すクラスのユニットテスト。実際のオブジェクトを使用する場合は、test doubleを使用し、静的メソッドを参照するときには不可能な動作をシミュレート(模擬)することができます。

3

私は自分のプロジェクトで再利用される機能に静的メソッドを使用するのが好きです。

私の意見では、このメソッドが多くの異なるクラスで使用される場合は、静的にしてください。

2

これはメソッドの内容によって異なります。あなたの例に基づいて、私はappendStringメソッドの静的識別子を使用することが有効であると言います。一般に、構築されるオブジェクトのインスタンスメンバを必要としないメソッドは、静的にすることができます。渡された値/データ(たとえば、度をラジアンに変換する)で操作するだけであれば、それは完全にOKです。

関連する問題