Page 43 - 4190
P. 43

4. Що  собою  являють  патерни  за  схемі  модель-вид-котролер
            (MVC)?
                  5. Зобразіть схеметично три види моделі.
                  6. Яка необхідна інформація для  опис патернів проектування?

                  7. Опишіть кожний розділ, на який розбивається кожний патерн.



                                                    ЛЕКЦІЯ 5



                    КЛАСИФІКАЦІЯ ПОРОДЖУЮЧИХ ПАТЕРНІВ
              ПРОЕКТУВАННЯ ПРОГРАМННОГО ЗАБЕЗПЕЧЕННЯ





                  Породжуючі шаблони (Creational patterns) — шаблони проекту-
            вання, які абстрагують процес створення екземпляра класу. Вони до-
            зволяють зробити систему незалежною від способу створення, компо-

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

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

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

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

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

            коли. Можна зібрати систему з «готових» об'єктів з найрізноманітні-
            шою  структурою  і  функціональністю  статично  (на  етапі компіляції)
            або динамічно (під час виконання).

                  Іноді допустимо вибирати між тим або іншим породжуючим ша-
            блоном. Наприклад, є випадки, коли з користю для справи можна ви-
                                                              43
   38   39   40   41   42   43   44   45   46   47   48