這是一個一般風格的問題,這是最佳實踐?哪個更具可測性?比方說,你有類:面向對象編程,它是否更面向對象傳遞參數給方法而不是構造函數?
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;
}
}
該代碼的一個優點是,我可以定義一個接口方法,並且可以定義所需的參數。不是面向構造函數的方法。
有了這些方法,只有一個構造函數和一個方法,您更喜歡哪種方法?爲什麼?
這取決於你需要達到的目標。 –
我會用第二個例子,用MyExecutor的一個實例,一次執行一個'Model'的多個實例。另外,很明顯'Model'不是'MyExecutor'的一部分。 –
它主要取決於你是否需要_immutable objects_:看看http://www.javapractices.com/topic/TopicAction.do?Id=29 – davioooh