我的一般問題是何時將參數傳遞給構造函數,以及何時將其傳遞給類的 方法。 通常,對象是「數據」+「作用於數據的方法」。何時使用構造函數以及何時傳入參數
我有幾個選項來設計一個名爲DFS的類。以下哪個例子最適合定義?
選項1:在構造函數中傳遞的圖,函數中的源。 Adv:相同的DFS對象將被重用於不同的源。
public class DFS {
Graph g;
public DFS(Graph g) {
this.g = g;
}
public void doDfs(int source) {
// dfs computation
}
}
選項2:構造與2個PARAMS和沒有多態性 Disadv:對於每個新的源需要構建新的對象。
public class DFS {
Graph g;
int source;
public DFS(Graph g, int source) {
this.g = g;
this.source = source;
}
public void doDfs() {
// dfs computation
}
}
方案3:過載構造 進階:解決我們的所有用例。 Dis:多態性代價高昂。
public class DFS {
Graph g;
int source;
public DFS(Graph g) {
this.g = g;
}
public DFS(Graph g, int source) {
this.g = g;
this.source = source;
}
public void doDfs() {
doDfs(source);
}
public void doDfs(int source) {
// dfs computation
}
}
方案4:沒有構造
public class DFS {
DFS() { }
public void doDFS(Graph g, int source) {
this.g = g;
this.source = source;
// dfs computation
}
}
看看http://stackoverflow.com/questions/18027135 –
你是什麼意思的「多態性」?我在這裏沒有看到任何多態性,也沒有看到它可能是相關的。 –