Русская Википедия:Null object (шаблон проектирования)

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

В объектно-ориентированном программировании Null Object — это объект с определенным нейтральным («null») поведением. Шаблон проектирования Null Object описывает использование таких объектов и их поведение (или отсутствие такового). Впервые опубликован в серии книг Pattern Languages of Program Design.[1]

Описание

В таких объектно-ориентированных языках как Java или C# объекты могут иметь значение NULL. Ссылки на такие объекты нуждаются в проверке на NULL-значение перед использованием, так как методы класса «нулевого» объекта, как правило, не могут вызываться.

Целью Null-object'а является инкапсулирование отсутствия объекта путём замещения его другим объектом, который ничего не делает.

Данный шаблон проектирования рекомендуется использовать, когда:

  • Объект требует взаимодействия с другими объектами. Null Object не устанавливает нового взаимодействия — он использует уже установленное взаимодействие.
  • Какие-то из взаимодействующих объектов должны бездействовать.
  • Требуется абстрагирование «общения» с объектами, имеющими NULL-значение.[2]

Структура

На диаграмме классов в языке UML шаблон проектирования представлен следующим образом:

Файл:Null Object.svg

Примеры

Пример на C# Шаблон:Hider hiding Пример на PHP

Шаблон:Hider hiding

Пример на Java Шаблон:Hider hidingПример на PythonШаблон:Hider hiding

Пример на Ruby

Шаблон:Скрытый блок

Примечания

Шаблон:Примечания

Ссылки

Шаблон:Перевести Шаблон:Compu-soft-stub Шаблон:Типы шаблонов проектирования