- •Лабораторна робота №5. Шаблони поведінки. Шаблони Iterator, Mediator, Observer
- •Завдання
- •Варіанти завдання
- •Питання для самостійної перевірки
- •Протокол
- •Список рекомендованих інформаційних джерел
- •Лабораторна робота №6. Шаблони поведінки. Шаблони Strategy, Chain of Responsibility, Visitor
- •Завдання
- •Варіанти завдання
- •Питання для самостійної перевірки
- •Протокол
- •Список рекомендованих інформаційних джерел
- •Лабораторна робота №7. Шаблони поведінки. Шаблони Memento, State, Command, Interpreter
- •Завдання
- •Варіанти завдання
- •Питання для самостійної перевірки
- •Протокол
- •Список рекомендованих інформаційних джерел
- •Лабораторна робота №8. Шаблони, що породжують. Шаблони Prototype, Singleton, Factory Method
- •Завдання
- •Варіанти завдання
- •Питання для самостійної перевірки
- •Протокол
- •Список рекомендованих інформаційних джерел
- •Лабораторна робота №9. Шаблони, що породжують. Шаблони Abstract Factory, Builder
- •Завдання
- •Варіанти завдання
- •Питання для самостійної перевірки
- •Протокол
- •Список рекомендованих інформаційних джерел
Завдання
-
Повторити шаблони, що породжують. Знати загальну характеристику шаблонів, що породжують та призначення кожного з них.
-
Детально вивчити шаблони, що породжують - Abstract Factory та Builder. Для кожного з них:
-
вивчити Шаблон, його призначення, альтернативні назви, мотивацію, випадки коли його застосування є доцільним та результати такого застосування;
-
знати особливості реалізації Шаблону, споріднені шаблони, відомі випадки його застосування в програмних додатках;
-
вільно володіти структурою Шаблону, призначенням його класів та відносинами між ними;
-
вміти розпізнавати Шаблон в UML діаграмі класів та будувати сирцеві коди Java-класів, що реалізують шаблон.
-
В підготованому проекті (ЛР1) створити програмний пакет com.lab111.labwork9. В пакеті розробити інтерфейси і класи, що реалізують завдання (згідно варіанту) з застосуванням одного чи декількох шаблонів (п.2). В розроблюваних класах повністю реалізувати методи, пов'язані з функціюванням Шаблону. Методи, що реалізують бізнес-логіку закрити заглушками з виводом на консоль інформації про викликаний метод та його аргументи.
-
За допомогою автоматизованих засобів виконати повне документування розроблених класів (також методів і полів), при цьому документація має в достатній мірі висвітлювати роль певного класу в загальній структурі Шаблону та особливості конкретної реалізації.
Варіанти завдання
Номер варіанту завдання обчислюється як залишок від ділення номеру залікової книжки на 11.
-
Визначити специфікації класів для подання сімейства віджетів графічного інтерфейсу користувача з реалізацією на різних API (WinAPI, GTK). Забезпечити можливість прозорого для клієнта розширення реалізацією для інших API (Qt, OSX).
-
Визначити специфікації класів для подання сімейства інструментів роботи з об'єктними даними через різні API (DB, File). Забезпечити можливість прозорого для клієнта розширення реалізацією для інших API (WebService).
-
Визначити специфікації класів для подання сімейства інструментів універсального інтерактивного середовища розробки (Validator, Compiler, Debugger) з їх реалізацією для різних мов (Java, C++). Забезпечити можливість прозорого для клієнта розширення реалізацією для мов (ObjectPascal).
-
Визначити специфікації класів для прямокутного ігрового простору та завантажувача його конфігурації із зовнішнього файлу.
-
Визначити специфікації класів для подання блок-схем алгоритмів (у відповідності до семантичної діаграми)
Рис.16. Семантична діаграма блок-схем алгоритмів
та її завантажувача із зовнішнього файлу.
-
Визначити специфікації класів для будівника дерева розбору складного виразу (у відповідності до БНФ) на основі його символьного подання.
<вираз>::=<простий вираз> | <складний вираз>
<простий вираз>::=<константа> | <змінна>
<константа>::=(<число>)
<змінна>::=(<ім’я>)
<складний вираз>::=(<вираз><знак операції><вираз>)
<знак операції>::=+|-|*|/
-
Визначити специфікації класів для подання запису, реляційної таблиці та її завантажувача із зовнішнього файлу.
-
Визначити специфікації класів для подання реляційної таблиці та будівника прямого добутку таблиць.
-
Визначити специфікації класів для подання реляційної таблиці та будівника проекції таблиць.
-
Визначити специфікації класів для подання реляційної таблиці, схеми бази даних та відповідного завантажувача. Забезпечити можливість створення тільки одного примірника схеми бази даних.
-
Визначити специфікації класів для подання елементів векторного графічного редактору (примітив і композит). Реалізувати можливість побудови композитного зображення на основі завантаженого файлу-специфікації.