Обзор темы [Рефакторинг кода]

Введение Null объекта (Introduce Null Object)

Есть проверки на значение Null.

Заменить значение Null на объект Null.

 

if (customer == null) plan = BillingPlan.basic();

else plan = customer.getPlan();

Преимущество полиморфизма состоит в том, что вместо того, чтобы узнавать, какого типа данный объект, а потом пользоваться его методами в зависимости от ответа, можно напрямую вызывать его методы, не заботясь о его типе. Это касается и пустого объекта (Null объекта), который будет корректно обрабатывать вызовы в отсутсвие реального объекта.