参考文献

空对象模式

  • 它用于处理对象引用为空时的情况.
  • 该模式的目标是消除对空引用的显式检查,从而提高代码可读性和可维护性.

组件

  • AbstractClass: 定义具体实现必须定义的抽象基元操作.
  • RealClass: AbstractClass的实际实现,执行一些实际操作
  • NullClass: 不执行任何抽象类操作的实现,以便向客户端提供非空对象
  • Client: 客户端获取抽象类的实现并使用它.它并不真正关心实现是空对象还是真实对象,因为它们都以相同的方式使用

实现方式

  • 定义一个共同的接口或抽象类,其中包含实际对象和空对象的共同方法.
  • 创建一个实际对象类,实现共同接口,并提供具体的实现逻辑.
  • 创建一个空对象类,也实现共同接口,但在方法中提供空实现.
  • 在需要使用对象的地方,使用空对象作为默认值,而不是使用 null.

使用场景

  • 避免在代码中频繁进行 null 引用的检查,减少条件分支.
  • 提供默认行为或占位符对象,以确保代码在任何情况下都能正常运行.
  • 简化客户端代码的逻辑,使其能够使用空对象而不需要进行额外的判断.
  • 提供一致的接口,使得空对象能够与实际对象无缝替换.