空对象模式是否使调试更加复杂



我想知道在某些情况下,空对象模式是否真的会使调试更加困难。例如,如果一个方法返回一个"空"对象而不是一个 null,那么它不会抛出错误。就可靠、干净的代码而言,这很好,但这并不意味着现在正在使用一个空对象,它基本上不做任何可能导致意外错误的事情。现在没有一个空异常来将程序员指向问题,现在没有什么可以帮助找到它。

是的,它可以,因为如果您的空对象必须返回一个值(如您的示例所示(,您只是推迟了空问题,并且仍然需要检查空值。

我发现空对象在满足两个条件的情况下非常有帮助。

  1. 您只是调用没有返回值的方法。
  2. 当没有价值时,您不想忽略操作。

一个简单的例子是回调。

class Callback {
   void onDoSomething(SomeArg someArg);
}

通常,您必须在使用回调之前执行空检查

if (callback != null) {
    callback.onDoSomething(someArg);
}
使用 null 对象

模式,可以使回调的默认值为 null 对象,并避免在代码的其余部分进行 null 检查。更少的样板代码可以更轻松地查看重要部分。

相关内容

  • 没有找到相关文章

最新更新