1. ホーム

[解決済み】プライベートヘルパーメソッドはstaticにできるのであればstaticにするべき

2022-04-10 21:51:20

質問

例えば、インスタンス化されるように設計されたクラスがあるとします。このクラスには、クラスのメンバにアクセスする必要がなく、引数のみを操作して結果を返すプライベートメソッド(quot;helper")がいくつかあります。

public class Example {
   private Something member;

   public double compute() {
       double total = 0;
       total += computeOne(member);
       total += computeMore(member);
       return total;         
   }

   private double computeOne(Something arg) { ... }
   private double computeMore(Something arg) {... } 
} 

を指定する特別な理由はあるのでしょうか? computeOnecomputeMore を静的メソッドとして使用すること、あるいは使用しない特別な理由がありますか?

確かに、非静的なままにしておくのが一番簡単です。たとえ、問題を起こさずに静的にすることも可能ですが。

どのように解決するのですか?

私は、このようなヘルパーメソッドは private static これによって、オブジェクトの状態を変更しないことを読者に明らかにすることができます。 私のIDEでは、静的メソッドの呼び出しを斜体で表示するので、シグネチャを見なくともそのメソッドが静的であることがわかるのです。