Також відомий як Large Class

Запах коду Занадто великий клас

Симптоми і ознаки

В класі безліч полів/методів/рядків коду.

Причини появи

Як правило, спочатку класи не бувають занадто великими. Але з часом у зв'язку з розвитком програми багато хто з них «роздувається».

Як і у випадку з довгими методами, найчастіше програмістові ментально простіше додати фічу в існуючий клас, ніж створювати новий клас для цієї фічі.

Лікування

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

  • Відокремлення класу допоможе, якщо частина поведінки великого класу може бути виділена в свій власний компонент.

  • Відокремлення підкласу допоможе, якщо частина поведінки великого класу може мати альтернативні реалізації або використовується лише в окремих випадках.

  • Відокремлення інтерфейсу допоможе, якщо вам потрібно мати список операцій і поведінки, яку клієнт зможе використовувати.

  • В класах графіческго інтерфейсу часто можна знайти дані і поведінки, які не відносяться до безпосереднього виводу інтерфейсу, а скоріше відповідають за його загальну логіку роботи. Такі дані і поведінки слід виділити окремий клас предметної області, який би керував роботою графічного інтерфейсу. Також при цьому може виявитися необхідність зберігати копії деяких даних в двох місцях і забезпечувати їх узгодженість. Дублювання видимих даних пропонує шлях, яким можна це здійснити.

Виграш

  • Рефакторинг таких класів позбавить розробників від необхідності запам'ятовувати надмірну кількість атрибутів класу.
  • У багатьох випадках розділення великих класів на частини дозволяє уникнути дублювання коду і функціональності.

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

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

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

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