Також відомий як Remove Middle Man

Рефакторинг Видалення посередника

Проблема

Клас має занадто багато методів, які просто делегують роботу іншим об'єктам.

Рішення

Видаліть ці методи і змусьте клієнта викликати кінцеві методи безпосередньо.

До
Remove Middle Man - Before
Після
Remove Middle Man - After

Причини рефакторингу

У цьому рефакторингу ми використаємо назви з приховання делегування, а саме:

сервер — це об'єкт, до якого клієнт має безпосередній доступ; — делегат — кінцевий об'єкт, який містить функціональність, потрібну клієнтові.

Існує два різновиди проблем:

  1. Клас-сервер нічого не робить сам по собі, створюючи зайву складність. В цьому випадку варто замислитися, чи потрібний цей клас взагалі.

  2. Кожного разу, коли в делегаті з'являється нова фіча, для неї треба створювати делегуючий метод у класі-сервері. Це може бути невигідно при великій кількості змін.

Порядок рефакторингу

  1. Створіть геттер для доступу до об'єкту класу-делегату з об'єкту класу-сервера.

  2. Замініть виклики делегуючих методів класу-серверу прямими викликами методів класу-делегату.

Замучились читати?

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

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

Дізнатися більше...