2

これは一般的なスタイルの質問ですが、どれがベスト プラクティスですか? どちらがよりテスト可能ですか? クラスがあるとしましょう:

public class MyExecutor {
   public MyExecutor(Model model) {
       this.model = model
   }
   public void execute() {
     // Do something with model;
   }

   public String toString() {
     return model.toString();
   }
}

上記のコードで、関心のあるオブジェクトをコンストラクターに渡し、後でそのオブジェクトを唯一のメソッドで使用するとします。上のコードと下のコードを比較してください。

public class MyExecutor implements TheExecutor {
   public MyExecutor() {
   }
   @Override
   public void execute(Model model) {
     // Do something with model;
   }   
}

このコードの利点の 1 つは、インターフェイス メソッドを定義でき、必要な引数を定義できることです。コンストラクター指向のアプローチではありません。

これらのアプローチでは、1 つのコンストラクターと 1 つのメソッドしかありませんが、どのアプローチを好みますか?またその理由は?

4

1 に答える 1