Page 80 - 4190
P. 80
Цей шаблон часто застосовують у ситуаціях, в яких відправника
повідомлень не цікавить, що роблять одержувачі з наданою їм інфор-
мацією.
UML-діаграма класів патерну Observer зображена на рисунку
7.11.
Рисунок 7.11 – UML-діаграма класів патерну Observer
Патерн State
Патерн State (Стан) – дозволяє об'єктові варіювати свою поведі-
нку залежно від внутрішнього стану. Ззовні здається, що змінився
клас об'єкта.
Слід використовувати шаблон Стан у випадках, якщо:
поведінка об'єкта залежить від його стану та повинна змінюва-
тись під час виконання програми;
у коді операцій бувають умовні оператори, що складаються з
багатьох частин, у котрих вибір гілки залежить від стану. Зазвичай у
такому разі стан представлено константами, що перелічуються. Часто
одна й та ж структура умовного оператору повторюється у декількох
операціях. Шаблон Стан пропонує помістити кожну гілку у окремий
клас. Це дозволить трактувати стан об'єкта як самостійний об'єкт, ко-
трий можна змінити незалежно від інших.
UML-діаграма класів патерну State зображена на рисунку 7.12.
80