Page 97 - 4190
P. 97

вдається  побудувати  таке  рішення,  де  спеціалізація  досягається  за-
            вдяки визначення одного підкласу і комбінування його екземплярів з
            уже існуючими. Патерни проектування: міст. ланцюжок обов’язків,
            компанувальник, декоратор, спостерігач, стратегія.

                  8)  незручності  при  зміні  класів.  Інколи  потрібно  модифікувати
            клас, але робити це не зручно. Припустимо, необхідний початковий
            код, а його немає (так може бути з комерційними бібліотеками кла-

            сів).  Будь-яка зміна викликає модифікацію множини існуючих під-
            класів. Завдяки патернам проектування можна модифікувати класи і
            за таких умов.  Патерни проектування: адаптер, декоратор, відвіду-
            вач.

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

            стей самої програми.


                                           Питання для самоконтролю
                  1. Які фактори необхідно враховувати в об’єктно-орієнтованому

            проектуванні при поділі  системи на об’єкти?
                  2. У чому суть специфікування об’єктів інтерфейсу?

                  3. У чому різниця між успадкування класу і успадкування інтер-
            фейсу?
                  4. Які переваги програмування з інтерфейсом, а не з реалізацією?
                  5. У чому суть успадкування класів при об’єктно-орієнтованому

            проектуванні?
                  6. В чому суть композиції об’єктів при  об’єктно-орієнтованому
            проектуванні?

                  7. Які два найбільш поширених прийоми повторного використан-
            ня функціональності в об’єктно-орієнтованих системах ?
                  8. Що  означає  повторне  використання  функціональності  прозо-
            рим ящиком?

                  9. Що  означає  повторне  використання  функціональності  чорним
            ящиком?
                  10. Для чого використовується делегування композиції?

                  11. Що означає розроблення програмного забезпечення через тес-
            тування?





                                                              97
   92   93   94   95   96   97   98   99   100   101   102