Введення null-об’єкта

недоліки

  • За відмову від умовних операторів ви платите ще одним новим класом.

порядок рефакторінга

З цікавить вас класу створіть підклас, який буде виконувати роль Null-об'єкта.

В обох класах створіть метод isNull (). який буде повертати true для Null-об'єкта і false для реального класу.

Знайдіть всі місця, де код може повернути null замість реального об'єкта. Змініть цей код так, щоб він повертав Null-об'єкт.

Знайдіть всі місця, де змінні реального класу порівнюються з null. Замініть такі перевірки викликом методу isNull ().

    • Якщо в цих умовних операторах при значенні не рівному null виконуються методи вихідного класу, перевизначите ці методи в Null-класі і вставте туди код з else частини умови. Після цього умовний оператор можна буде взагалі видалити, а різну поведінку буде здійснюватися за рахунок поліморфізму.
    • Якщо не все так просто, і методи перевизначити не виходить, подивіться, чи можна просто виділіть операції, які повинні були виконуватися при значенні рівному null в нові методи Null-об'єкта. Викликайте ці методи замість старого коду в else як операції за замовчуванням.
  • Введення null-об'єкта

    Збігайте за подушкою, у нас тут контенту на 7 годин читання.

    Або спробуйте наш інтерактивний курс. Він набагато цікавіший, ніж банальний текст.