【发布时间】:2013-08-05 13:57:34
【问题描述】:
如果我查询一个对象说一个 Animal 并且返回的对象不是 null 但包含 null 变量,那是错误的吗?例如我可以打电话给animal.getDeathDate();并且由于它还没有死,它返回null。对于 Turtle,getFlightSpeed() 将返回 null,因为在添加 Turtle 火箭包之前它无法飞行。等等等等。
我认为这是一种糟糕的处理方式,因为在调用对象的方法以验证它们是否包含非空值时,它通常会导致需要进行大量空值检查。是否有任何相关信息的链接可以进一步告知我自己和我的同事?
【问题讨论】:
-
您可能需要 Null Object 模式。
-
我读到了空对象模式,但我不确定它是否解决了具有空变量的对象。我认为这与是否应该从查询方法而不是数据对象返回 null 或对象有关。
-
空对象模式基本上适用于每个
null。保证非空值使代码更容易。 -
好的,谢谢,我想我会重定向到那个,唯一的问题是似乎有很多关于它的争论。我希望有一个更明确的答案,并达成共识。您可以添加您的评论作为答案吗?
标签: java anti-patterns