Русская Википедия:Null object (шаблон проектирования)
В объектно-ориентированном программировании Null Object — это объект с определенным нейтральным («null») поведением. Шаблон проектирования Null Object описывает использование таких объектов и их поведение (или отсутствие такового). Впервые опубликован в серии книг Pattern Languages of Program Design.[1]
Описание
В таких объектно-ориентированных языках как Java или C# объекты могут иметь значение NULL. Ссылки на такие объекты нуждаются в проверке на NULL-значение перед использованием, так как методы класса «нулевого» объекта, как правило, не могут вызываться.
Целью Null-object'а является инкапсулирование отсутствия объекта путём замещения его другим объектом, который ничего не делает.
Данный шаблон проектирования рекомендуется использовать, когда:
- Объект требует взаимодействия с другими объектами. Null Object не устанавливает нового взаимодействия — он использует уже установленное взаимодействие.
- Какие-то из взаимодействующих объектов должны бездействовать.
- Требуется абстрагирование «общения» с объектами, имеющими NULL-значение.[2]
Структура
На диаграмме классов в языке UML шаблон проектирования представлен следующим образом:
Примеры
Пример на C# Шаблон:Hider hiding Пример на PHP
Пример на Java Шаблон:Hider hidingПример на PythonШаблон:Hider hiding
Пример на Ruby
Примечания
Ссылки
- Jeffrey Walkers' account of the Null Object Pattern
- Martin Fowlers' description of Special Case, a slightly more general pattern
- Null Object Pattern Revisited
- Introduce Null Object refactoring
Шаблон:Перевести Шаблон:Compu-soft-stub Шаблон:Типы шаблонов проектирования
- ↑ Шаблон:Книга
- ↑ http://sourcemaking.com/design_patterns/null_object Шаблон:Wayback SourceMaking Tutorial