Page 64 - 4787
P. 64

З параметрами менше проблем, ніж з тимчасовими змінними, за умови, що

               їм не присвоюють значення. В іншому випадку потрібно виконати  «Видалення


               присвоювань параметрами» (Remove Assignments to Parameters).


                     Приклад 1. Виділення методу.

                     Перетворіть  фрагмент  коду  в  метод,  назва  якого  пояснює  його


               призначення.


                    До проведення рефакторингу
               void printOwing(double amount) {

                      printBanner();

                      System.out.println (“name: ” + _name);
                      System.out.println (“amount ” + amount);

               }

               Після проведення рефакторингу


               void printOwing( double amount) {

                      printBanner();
                      printDetails(amount);

               }


               void printDetails (double amount) {

                      System.out.println (“name: ” + _name);
                      System.out.println (“amount ” + amount);

               }


                      Коли передбачуваний до виділення код дуже простий, наприклад, якщо він

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


               якщо ім'я нового методу краще розкриває призначення коду. Якщо  не потрібно


               змінювати  ім'я,  то  не    виділяють  код.  Тоді  копіюють  код,  який  підлягає

               виділенню, з вихідного методу в створюваний. Потрібно знайти у витягнутому


               коді  всі  звернення  до  змінних,  які  мають  локальну  область  видимості  для


               вихідного  методу.  Ними  є  локальні  змінні  і  параметри  методу  Далі.  знайти


                                                                                                             63
   59   60   61   62   63   64   65   66   67   68   69