- •Загальний план специфікації вимог до пз
- •Загальний огляд процесу відлагодження
- •Типові помилки при відлагодженні програм
- •Рекомендації щодо знаходження помилки
- •Рекомендації щодо виправлення помилок
- •«Агресивне» відлагодження
- •Відлагодження помилок при компіляції програм
- •1. Елементарні структури даних
- •1.1. Масив
- •1.2 Лінійний список.
- •2. Більш складні структури даних
- •2.1 Граф
- •2.2 Дерево
- •1.3 Купа
- •Визначення ооп
- •Фундаментальні поняття
- •Переваги ооп
- •Недоліки ооп
- •Типи відносин між класами
- •Агрегація
- •Асоціація
- •Успадкування
- •Метакласи
- •Шаблон «Абстрактна фабрика» (Abstract Factory)
- •Шаблон «Будівельник» (Builder)
- •Шаблон «Фабричний метод» (Factory Method)
- •Шаблон «Прототип» (Prototype)
- •Шаблон «Одинак» (Singleton)
- •1. Технологія com(Component Object Model)
- •2. Технологія rscom від «r-Style Softlab»
- •3. Технологія corba
- •4. Технологія JavaBeen.
- •5. Технологія ejb
- •1.1 Умовні оператори
- •1.1.1 Однорядкова конструкція оператора If / Then / Else:
- •1.1.3 Розгалуження обчислень за кількома умовами If /Then /ElseIf /EndIf:
- •1.1.4. Оператор Select Case:
- •1.2 Елементи екранних форм для організації розгалужень
- •1.3 Оператори циклу
- •1.3.1 Оператор циклу з лічильником For…Next
- •1.3.2. Оператор циклу For Each...Next
- •1.3.3. Оператор циклу з передумовою While...Wend
- •1.3.4 Оператор циклу Do...Loop
- •1.4 Оператори безумовної передачі керування
- •1.4.1 Оператор безумовного переходу Goto:
- •1.4.2 Оператор виходу зі структурного блоку Exit :
- •Статичні масиви
- •Динамічні масиви
- •Присвоювання масивів
Шаблон «Фабричний метод» (Factory Method)
Назва та класифікація
Фабричний метод — шаблон, що породжує класи.
Призначення
Визначає інтерфейс для створення об’єкта, але рішення про те, який клас інстанціювати, залишає за підкласами. Таким чином, фабричний метод дозволяє класу делегувати дію інстанціювання підкласам.
Інші назви
Віртуальний конструктор (Virtual Constructor).
Підстави для застосування
1. Класові наперед невідомо, об’єкти яких класів йому потрібно створювати.
2. Клас спроектовано так, щоб об’єкти, які він створює, специфікувались підкласами.
3. Клас делегує свої обов’язки одному з кількох допоміжних підкласів, і ви плануєте локалізувати знання про те, який клас бере ці обов’язки на себе.
Структура
Учасники
1. Product — продукт:
- визначає інтерфейс об’єктів, створюваних фабричним методом.
2. ConcreteProduct — конкретний продукт:
- реалізує інтерфейс Product.
3. Creator — творець.
- оголошує фабричний метод, що повертає об’єкт типу Product;
- може викликати фабричний метод для створення об’єкту Product.
4. ConcreteCreator — конкретний творець:
- заміщує фабричний метод, що повертає об’єкт ConcreteProduct.
Відношення
Творець «покладається» на свої підкласи шляхом визначення фабричного методу, який буде повертати екземпляр відповідного конкретного продукту.
Результати
1. (+) Надає підкласам можливість виконання операцій-зачіпок (hooks).
2. (+) З’єднує паралельні ієрархії класів.
Шаблон «Прототип» (Prototype)
Назва та класифікація
Прототип — шаблон, що породжує об’єкти.
Призначення
Задає види створюваних об’єктів за допомогою екземпляра-прототипу і створює нові об’єкти шляхом копіювання цього прототипу.
Підстави для застосування
1. Інстанційовані класи визначаються під час виконання, наприклад, за допомогою динамічного завантаження.
2. Щоб запобігти побудови ієрархій класів чи фабрик, паралельних до ієрархії класів продуктів.
3. Екземпляри класів можуть знаходитися в одному зі станів, причому множина можливих станів є не дуже великою. Може бути зручніше встановити відповідну кількість прототипів та клонувати їх, а не створювати об’єкт кожного разу в потрібному стані.
Структура
Загальна структура шаблону:
Приклад (візуальний редактор нотного стану):
Учасники
1. Prototype — прототип:
- визначає інтерфейс для клонування самого себе.
2. ConcretePrototype — конкретний прототип:
- реалізує операцію клонування самого себе.
3. Client — клієнт:
- створює новий об’єкт, звертаючись до прототипу з запитом клонувати себе.
Відношення
Клієнт звертається до прототипу, щоб він створив копію самого себе.
Результати
«Прототип» приносить ті ж самі результати, що й абстрактна фабрика чи будівельник: він приховує від клієнта конкретні класи продуктів, зменшуючи тим самим кількість відомих клієнту імен. Крім того, всі ці шаблони дозволяють клієнтам працювати зі специфічними для програми класами без модифікацій.
1. (+) Додавання та видалення типів продуктів під час виконання.
2. (+) Специфікація нових об’єктів шляхом зміни властивостей, а не опису нових класів.
3. (+) Специфікація нових об’єктів шляхом зміни структури.
4. (+) Зменшення кількості підкласів.
5. (+) Динамічна конфігурація програми за допомогою класів.
6. (–) Інколи дуже складно реалізувати операцію клонування об’єкта.
7. (–) Реалізація ускладнюється, коли прототипи потрібно не тільки клонувати, а й ініціалізувати стан клонів певними особливими значеннями.