Page 114 - 4836
P. 114

Нехай  вже  є  допоміжний  метод  getNextUser(),  який
                            повертає  черговий  рядок  цієї  таблиці,  а  якщо  рядків  більше
                            немає, повертає нуль. Заголовок цього методу може виглядати
                            таким чином:
                                   Map getNextUser();
                                   Зауважте, повертаємий результат має інтерфейсний тип
                            Map, а не якогось конкретного класу (наприклад, Hashtable).
                            Це  професійний  підхід  до  розробки  методу.  Звичайно,
                            всередині методу відбувається робота з об'єктом конкретного
                            класу  (можливо,  з  тим  ж  самим  Hashtable  -  адже  метод
                            повинен створити об'єкт, який повертається, а створити об'єкт
                            абстрактного  класу  чи  інтерфейсу  не  можна).  Але,
                            приховуючи  деталі  своєї  реалізації  і  повідомляючи  програмі
                            лише  мінімально  необхідну  інформацію  (що результат,  який
                            повертається  підтримує  інтерфейс  Map),  метод  домагається
                            більшої  гнучкості.  Згодом  може  бути  прийнято  рішення
                            замінити Hashtable на HashMap і при цьому всі зміни потрібно
                            буде провести тільки в тілі методу getNextUser(), а не у всіх
                            місцях програми, де він викликався.
                                   Ключами      елементів    асоціативного     масиву,    що
                            повертається методом getNextUser() є рядки, що збігаються з
                            назвами  стовпців  таблиці,  а  значеннями  -  рядки,  що  містять
                            значення з відповідної комірки таблиці. Припустимо, що цей
                            метод  до  того  ж  полегшує  нам  роботу:  заміняє  значення  0





                                                           112
   109   110   111   112   113   114   115   116   117   118   119