
- •Курсова робота
- •«Шаблони програмування»
- •Метою дослідження є вивчення шаблонів проектування програмних засобів, можливості використання шаблонів програмування як підходу для вирішення задачю. Задачі дослідження:
- •Актуальність теми
- •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. Шаблоний метод
6.8. Стан
Стан (англ. State) — шаблон проектування, відноситься до класу шаблонів поведінки.
Призначення
Дозволяє об'єктові варіювати свою поведінку залежно від внутрішнього стану. Ззовні здається, що змінився клас об'єкта.
Застосовність
Слід використовувати шаблон Стан у випадках, коли:
поведінка об'єкта залежить від його стану та повинно змінюватись під час виконання програми;
у коді операцій зустрічаються умовні оператори, що складаються з багатьох частин, у котрих вибір гілки залежить від стану. Зазвичай у такому разі стан представлено константами, що перелічуються. Часто одна й та ж структура умовного оператору повторюється у декількох операціях. Шаблон Стан пропонує помістити кожну гілку у окремий клас. Це дозволить трактувати стан об'єкта як самостійний об'єкт, котрий можна змінитися незалежно від інших.
6.9. Стратегія
Стратегія (англ. Strategy ) —шаблон проектування, відноситься до класу шаблонів поведінки. Відомий ще під іншою назвою - "Policy". Його суть полягає у тому, щоб створити декілька схем поведінки для одного об'єкту та винести в окремий клас. Шаблон Стратегія(Strategy) дозволяє міняти вибраний алгоритм незалежно від об'єктів-клієнтів, які його використовують.
Завдання
За типом клієнта (або за типом оброблюваних даних) вибрати підходящий алгоритм, який слід застосувати. Якщо використовується правило, яке не піддається змінам, немає необхідності звертатися до шаблону «стратегія».
Спосіб вирішення
Відділення процедури вибору алгоритму від його реалізації. Це дозволяє зробити вибір на підставі контексту.
6.10. Знімок
Зні́мок (англ. Memento) — шаблон проектування, відноситься до класу шаблонів поведінки.
Призначення
Не порушуючи інкапсуляції, фіксує та виносить за межі об'єкта його внутрішній стан так, щоб пізніше можна було відновити з нього об'єкт.
Застосовність
Слід використовувати шаблон Знімок у випадках, коли:
необхідно зберегти миттєвий знімок стану об'єкта (або його частини), щоб згодом об'єкт можна було відтворити у тому ж самому стані;
безпосереднє вилучення цього стану розкриває деталі реалізації та порушує інкапсуляцію об'єкта.
6.11. Шаблоний метод
Шаблонний метод (англ. Template Method) - шаблон проектування, приналежить до класу шаблонів поведінки.
Призначення
Визначає основу алгоритму та дозволяє підкласам перевизначити деякі кроки алгоритму, не змінюючи структуру в цілому.
Застосовність
Слід використовувати шаблон Шаблонний метод коли:
треба одноразово використати інваріантні частини алгоритму, залишаючи реалізацію поведінки, що змінюється, на розсуд підкласів;
треба відокремити та локалізувати в одному класі поведінку, що є загальною для усіх підкласів, щоб запобігти дублювання коду. Це хороший приклад техніки “винесення за лапки з метою узагальнення”, що описана в роботі Вільяма Опдайка (англ. William Opdyke) та Ральфа Джонсона (англ. Ralph Johnson) [JO93,OJ93]. Спочатку ідентифікуються відмінності в існуючому коді, а потім вони виносяться у окремі операції. У кінцевому підсумку відмінні фрагменти коду замінюються шаблонним методом, з котрого викликаються нові операції;
Висновки
В курсовій роботі розглянуті актуальні питання пов’язанні з використанням шаблонів програмування у такій галузі науки як теорія програмування.
Було розглянуто ієрархію існуючих шаблонів, твірні, структурні шаблони та шаблони поведінки.
Також було показано суть та переваги різних шаблонів.
Дослідження також охопило майже усю базу знань з досліджувального предмету.
При розгляді виразних описових логік були висвітлені важливі поняття такі як: шаблони GRASP, шаблони GOF, абстрактна фабрика, будівник, одинак , прототип, фабричний метод, адаптор, декоратор, замісник, компонувальник, міст, легковаговик, фасад, відвідувач, інтерпретатор, ітератор, команда, ланцюг обов’язків, посередник, спостерігач, стан, стратегія, знімок, ієрархія ролей.
Проведенно детальний логічний аналіз, а також визначенні властивості шаблонів програмування.
Визначенно зв’язок шаблонів програмування з різноманітними мовами програмування, що вивчаються у галузі теорія програмування.
Список використаної літератури
Алан Шаллоуей, Джеймс Р. Тротт Шаблоны проектирования. Новый подход к объектно-ориентированному анализу и проектированию = Design Patterns Explained: A New Perspective on Object-Oriented Design. — М.: «Вильямс», 2002. — 288с.
Андрій Будай. Дизайн-патерни — просто, як двері. - http://designpatterns.andriybuday.com/
Лаврищева К.М. Методы программирования. Теория, инженерия, практика. – К.; Наукова Думка, 2006.–451с.
Лаврищева Е,М., Петрухин В.А. Методы и средства программного обеспечения. М:. Мин. образования РФ., 2007. — 415 с.