Описание тега null-object-pattern
Шаблон, в котором конкретный объект используется для представления нулевого значения, а не истинного программного нуля, чтобы избежать различных сложностей, возникающих при использовании фактического нуля. При использовании этого тега для сложных вопросов реализации - укажите язык кода, на котором написана реализация.
Некоторые протоколы и адаптеры могут взорваться при обработке фактического нуля. Чтобы избежать этой проблемы и упростить код (отказаться от всех проверок NULL на стороне клиента), вместо NULL используется специальный объект "токен", представляющий "ноль".
Впервые он был задокументирован Бобби Вульфом в "Языках шаблонов проектирования программ 3".