Заміна параметрів об’єктом

причини рефакторінга

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

переваги

Покращує Новомосковскбельность коду. Замість пачки різноманітних параметрів ви бачите один об'єкт з зрозумілою назвою.

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

недоліки

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

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

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

У методі, до якого застосовуємо рефакторинг, додайте новий параметр. в якому буде передаватися ваш об'єкт-параметр. У всіх викликах методу передавайте в цей параметр об'єкт, створюваний зі старих параметрів методу.

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

По закінченню оціните, чи є можливість і сенс перенести якусь частину методу (а іноді і весь метод) в клас об'єкта-параметра. Якщо так, використовуйте переміщення методу або витяг методу. щоб здійснити перенесення.

Заміна параметрів об'єктом

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

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