これは一般的なスタイルの質問ですが、どれがベスト プラクティスですか? どちらがよりテスト可能ですか? クラスがあるとしましょう:
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 つのメソッドしかありませんが、どのアプローチを好みますか?またその理由は?