Page 77 - 4787
P. 77
можна перемістити логіку бази даних і дані предметної області в клас
предметної області. Для видалення імпорту java.sql з вікна замовлення треба
виконати «Виділень методу» (ExtractMethod) і «переміщеннь методу» (Move
Method).
Рисунок.8.5.- Розподіл даних по класах предметної області
Отримані класи, показані на рис. 8.5, ще далекі від хорошої структуризації,
але в цій моделі логіка предметної області вже відокремлена. При проведенні
цього рефакторингу треба уважно стежити за можливими небезпеками. Якщо
найбільшу загрозу представлять змішання логіки подання та логіки предметної
області, повністю розділіть їх, перш ніж робити ще щось суттєве. Якщо
важливіші інші речі, наприклад стратегії отримання цін продуктів, необхідно
прибрати з вікна логіку цієї важливої частини і зайнятися її реорганізацією,
щоб отримати прийнятну структуру для області високого ризику. Досить
імовірно, що з вікна замовлення треба буде прибрати всю логіку предметної
області. Якщо можна змінити композицію класів програми, залишивши частину
76