java - 空对象设计模式问题

标签 java design-patterns null-object-pattern

我最近看了this youtube tutorial关于空对象设计模式。尽管其中存在一些错误:例如不执行任何操作的 NullCar 创建了一个无限循环,但这个概念得到了很好的解释。我的问题是,当可以为 null 的对象具有 getter 并在您的代码中使用时,您会怎么做?你怎么知道默认返回哪个值?或者我应该在所有对象中实现这个模式吗?如果我需要返回字符串或原语怎么办?我是从 Java 的角度谈的。

编辑:我不会将空对象测试换成默认值测试吗?如果不是,为什么不呢?

最佳答案

Null 对象的目的是避免在代码中引用 Null。空对象 getter 返回的值取决于您的域。零或空字符串通常是合适的。

如果我们将 Null Object 模式应用到现实生活中,您的问题类似于“没有人多大了?”。

也许您的设计可以改进,因为您似乎没有遵循 tell, don't ask原则。

编辑:Null Object design pattern通常在一个对象将行为委托(delegate)给另一个对象时使用(例如在策略或状态设计模式中);正如 Tom Hawtin - tackline 评论的那样,使用 Special Case Objects对于返回值的对象。

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

相关文章:

python - MVP:Presenter-Model 通信

java - LinkedList 中的空对象设计模式

ruby - 只是为了好玩 - 我可以为特定用途编写自定义 NilClass 吗?

java - 为什么我取不回 JSON 内容?

java - 如何从 cookie 中删除 JSESSIONID?

c++ - boost::asio 和事件对象

design-patterns - 空对象模式以避免空检查?

java - 在程序启动时绘制图形; PaintComponent 从未被调用

java - 使用 Spring Data 在执行期间更改了存储过程名称

java - 继承DatabaseManager类或使其成为单例对象来实现DAO模式哪个更好?为什么?