gpt4 book ai didi

java - 具有空对象模式的 DAO

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:00:19 24 4
gpt4 key购买 nike

阅读后:
Effective Java(参见第 43 条)- Joshua Bloch
整洁的代码(不返回 Null)- Bob 叔叔
Avoiding != null statements
Null Object pattern

我正在寻找一个问题的答案,即当搜索最终针对的是非集合对象不存在的实体时,DAO 应该返回什么。通过使用空数组或 emptyList 方法,集合对象确实可以。但是对于非 Collection 品,这可能会更难。另一种解决方案是永远不返回 null 而是使用 Null Object 模式。但是我不知道将 Null Object 模式与 DAO 集成,我真的很高兴看到 Null Object 模式和 DAO 模式的完美集成,尤其是对于模型(dto)对象返回情况。

我将不胜感激并欢迎任何最佳设计模式、场景和建议。

最佳答案

确实引入null 引用可能是编程语言历史上最严重的错误之一,即使它的创建者也是如此 Tony Hoare称之为他的十亿美元的错误

根据您的 Java 版本,以下是 null 的最佳替代方案:

1。 Java 8 及更高版本

Java 8 开始,您可以使用 java.util.Optional .

这是一个如何在您的案例中使用它的示例:

public Optional<MyEntity> findMyEntity() {
MyEntity entity = // some query here
return Optional.ofNullable(entity);
}

2。在 Java 8

之前

Java 8 之前,您可以使用 com.google.common.base.Optional来自 Google Guava

这是一个如何在您的案例中使用它的示例:

public Optional<MyEntity> findMyEntity() {
MyEntity entity = // some query here
return Optional.fromNullable(entity);
}

关于java - 具有空对象模式的 DAO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40082175/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com