【发布时间】:2011-04-20 13:12:36
【问题描述】:
我正在用 Java 编写 BFS 和 DFS。我希望做的是创建一个这样的类:
/** Preforms BFS and DFS on ...
*/
public class Search{
private XXX toSearch;
// where XXX is an interface of Stack and LinkedList that has
// remove() and add() methods.
public Search(boolean isBFS){
if(isBFS)
toSearch = new LinkedList();
else
toSearch = new Stack();
}
public void preformSearch(){
while(toSearch.size() > 0){
preformSearchOn(toSearch.remove()); // <----- KEY LINE
}
}
private void preformSearchOn(...){...}
}
这个类可以根据它的初始化方式执行 BFS 和 DFS。什么是XXX?我不认为它存在。
我认为面向对象编程的全部意义在于能够做这样很酷的事情。
处理这个问题的最干净的方法是什么?
【问题讨论】:
-
“执行”,而不是“预制”