java - 一个函数应该在多大程度上信任另一个函数

标签 java verification effective-java

考虑名为 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/

相关文章:

java - 我是否需要在 future.get(); 之后使用 threadPool.awaitTermination

java - 无法在Thread中获取spring服务bean

php - Paypal Rest API 支付验证服务器端

java - 静态工厂方法不起作用

java - 我们需要 Builder 模式中的 .build() 方法吗?

java - URL.openStream() 返回什么?

java - 如何从java中的<dc>标签中提取数据?

c# - 服务器/客户端验证?

java - 尝试验证数字签名时出现异常

java - 删除Effective Java中Builder模式的Builder类