考虑名为 Graph 的类中的以下两个函数。完整的源代码可以在这里找到: http://www.keithschwarz.com/interesting/code/?dir=dijkstra 。
public void addNode(T node) {
mGraph.put(node, new HashMap<T, Double>());
}
public void addEdge(T start, T dest, double length) {
mGraph.get(start).put(dest, length);
}
这里,addEdge
方法是盲目信任addNode
它添加的方法 hashmap
到 mGraph。相信类中的其他方法能够正确完成其工作是一种常见的做法吗?或者是否建议一种方法对一切都持怀疑态度并进行如下检查:
public void addEdge(T start, T dest, double length) {
Map m = mGraph.get(start)
if ( m ! = null) ... ...
}
我再次有兴趣知道什么是commonly done
什么是ideally recommended
。
最佳答案
此类调试是开发过程的一部分,不应成为运行时的问题。
方法不信任其他方法。他们都信任你。这就是发展的过程。修复所有错误。那么方法就不必“信任”。应该没有疑问。
所以,应该这样写。不要让方法检查其他方法是否正常工作。开发人员在编写该函数时应该对此进行测试。如果您怀疑某个方法没有执行您想要的操作,请对其进行调试。
关于java - 一个函数应该在多大程度上信任另一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20864337/