Jav*_*per 3 java software-design
假设我们有一个只有1个函数的类,例如:compute DFS.以下哪项是首选方法,为什么?
Approach 1:
public class DFS {
public DFS(Graph g) {
dfs(g); // <--- computation invoked from constructor.
}
private void DFS(Graph g) {
// do dfs traversal
}
}
Client:
DFS dfs = new DFS(graph);
Approach 2:
public class DFS {
Graph g;
public DFS(Graph g) {
this.g = g
}
private void doDFS() {
// do dfs traversal
}
}
Client:
DFS dfs = new DFS(graph);
dfs.doDFS();
Run Code Online (Sandbox Code Playgroud)
小智 8
构造函数用于初始化对象中的数据字段.鉴于选择,第二种方法似乎更正确.
虽然可能更好的是在图形对象中包含doDFS方法.为单个简单函数创建整个类通常是不好的做法.doDFS方法特定于它使用的图形,因此将它包含在您拥有的任何图形类中是很自然的.