
- •Курсова робота
- •«Шаблони програмування»
- •Метою дослідження є вивчення шаблонів проектування програмних засобів, можливості використання шаблонів програмування як підходу для вирішення задачю. Задачі дослідження:
- •Актуальність теми
- •1. Шаблони програмування
- •Типи шаблонів gof
- •2. Історія
- •3. Шаблони grasp
- •4. Твірні шаблони
- •4.1. Абстрактна фабрика
- •4.2. Будівник
- •4.3. Одинак
- •4.4. Прототип
- •4.5. Фабричний метод
- •5. Структурні шаблони
- •5.1. Адаптор
- •5.2. Декоратор
- •Спосіб вирішення
- •Учасники
- •Наслідки
- •5.3. Замісник
- •5.4. Компонувальник
- •5.6. Легковаговик
- •5.7. Фасад
- •6. Шаблони поведінки
- •6.1. Відвідувач
- •6.2. Інтерпретатор
- •6.3. Ітератор
- •6.4. Команда
- •6.5. Ланцюг обов’язків
- •6.6. Посередник
- •6.7. Спостерігач
- •6.8. Стан
- •6.9. Стратегія
- •6.11. Шаблоний метод
4.1. Абстрактна фабрика
Абстра́ктна фа́брика (англ. Abstract Factory) — шаблон проектування, відноситься до класу твірних шаблонів.
Призначення
Подає інтерфейс для утворення родин взаємозв'язаних або взаємозалежних об'єктів, не специфікуючи їхніх конкретних класів.
Застосування
Слід використовувати шаблон Абстрактна фабрика коли:
система не повинна залежати від того, як утворюються, компонуються та представляються вхідні до неї об'єкти;
вхідні до родини взаємозв'язані об'єкти повинні використовуватися разом і необхідно забезпечити виконання цього обмеження;
система повинна конфігуруватися однією з родин складаючих її об'єктів;
треба подати бібліотеку об'єктів, розкриваючи тільки їхні інтерфейси, але не реалізацію.
4.2. Будівник
Будівник (англ. Builder) — шаблон проектування, відноситься до класу твірних шаблонів.
Призначення
Відокремлює конструювання складного об'єкта від його подання, таким чином у результаті одного й того ж процесу конструювання можуть бути отримані різні подання.
Застосування
Слід використовувати шаблон Будівник коли:
алгоритм створення складного об'єкта не повинен залежати від того, з яких частин складається об'єкт та як вони стикуються поміж собою;
процес конструювання повинен забезпечити різні подання об'єкта, що конструюється.
4.3. Одинак
Одинак (англ. Singleton) — шаблон проектування, відноситься до класу твірних шаблонів. Гарантує, що клас матиме тільки один екземпляр, і забезпечує глобальну точку доступу до цього екземпляра.
Застосування
Слід використовувати шаблон Одинак коли:
повинен бути тільки один екземпляр деякого класу, що легко доступний всім клієнтам;
єдиний екземпляр повинен розширюватись шляхом успадкування, та клієнтам потрібно мати можливість працювати з розширеним екземпляром не змінюючи свій код.
4.4. Прототип
Прототип (англ. Prototype) - шаблон проектування, відноситься до класу твірних шаблонів.
Призначення
Задає види об'єктів, що створюються, за допомогою екземпляру-прототипу, та створює нові об'єкти шляхом копіювання цього прототипу.
Застосування
Слід використовувати шаблон Прототип коли:
класи, що інстанціюються, визначаються під час виконання, наприклад за допомогою динамічного завантаження;
треба запобігти побудові ієрархій класів або фабрик, паралельних ієрархій класів продуктів;
екземпляри класу можуть знаходитись у одному з не дуже великої кількості станів. Може статися, що зручніше встановити відповідну кількість прототипів та клонувати їх, а не інстанціювати кожний раз клас вручну в слушному стані.
4.5. Фабричний метод
Фабричний метод (англ. Factory Method) — шаблон проектування, відноситься до класу твірних шаблонів.
Призначення
Визначає інтерфейс для створення об'єкта, але залишає підкласам рішення про те, який саме клас інстанціювати. Фабричний метод дозволяє класу делегувати інстанціювання підкласам.
Застосування
Слід використовувати шаблон Фабричний метод коли:
класу не відомо заздалегідь, об'єкти яких саме класів йому потрібно створювати;
клас спроектовано так, щоб об'єкти, котрі він створює, специфікувалися підкласами;
клас делегує свої обов'язки одному з кількох допоміжних підкласів, та потрібно локалізувати знання про те, який саме підклас приймає ці обов'язки на себе.
Стосунки
Творець покладається на свої підкласи в означенні фабричного методу, котрий буде повертати екземпляр відповідного конкретного продукту.