Что такое паттерн Special Case / Null Object?
Уровень: Senior
Ответ
Null Object (он же Special Case) — поведенческий паттерн, суть которого – предоставить объект-заглушку с нейтральным "пустым" поведением вместо null. Вместо того, чтобы возвращать null и заставлять клиента делать проверки, метод возвращает особый объект, реализующий нужный интерфейс, но ничего не делающий ("пустую" реализацию). Например, если метод поиска не находит запись, он может вернуть объект-имплементацию интерфейса, которая внутри не содержит данных, но её методы безопасно ничего не делают. Клиентский код может работать с этим объектом, не опасаясь NullPointerException, и не знает, что объект "пустой". Это упрощает логику (не нужно if null), и концентрирует обработку отсутствия данных внутри Null Object-класса. Паттерн используется, когда наличие null усложнило бы код проверками, а использовать объект-заглушку проще и надёжнее.