Патерни поведінки — Behavioral patterns
ADO в Delphi AJAX Android C++ CakePHP CMS COM CSS Delphi Flash Flex HTML Internet Java JavaScript MySQL PHP RIA SCORM Silverlight SQL UML XML Бази даних Веб-розробка Генетичні алгоритми ГІС Гітара Дизайн Економіка Інтелектуальні СДН Колір Масаж Математика Медицина Музика Нечітка логіка ООП Патерни Подання знань Розкрутка сайту, SEO САПР Сесії в PHP Системне програмування Системний аналіз Тестологія Тестування ПЗ Фреймворки Штучний інтелект
|
Патерни поведінки — Behavioral patternsКлючові поняття: Патерни поведінки, Ланцюжок Відповідальностей, Команда , Інтерпретер , Ітератор , Медіатор , Хранитель , Спостерігач , Стан , Стратегія , Шаблонний метод, Відвідувач .
Ще однією групою патернів є такі, що акцентують свою увагу на поведінці. Вони або інкапсулюють поведінку, або дозволяють її розподілити. Щоб забезпечити почергову передачу роботи від одного класу до іншого і так дальше, аж до поки робота не буде виконана, використовують Ланцюжок Відповідальностей. Інколи краще запакувати інформацію про дії, які слід виконати, в один об’єкт Команди і переслати на опрацювання, або ж просто виконати в потрібному місці. Багато явищ можна описати за допомогою якоїсь спеціальної мови, наприклад погодні умови можуть бути записані значками, зрозумілими тільки метеорологам, але якщо вам подана граматика цієї мови і пояснення значків, цілком можливо, що ви зможете Інтерпретувати метеорологічне речення і зрозуміти його суть. Колекції об’єктів можуть бути «хитрими» і містити багато підколекцій та поокремих об’єктів. Щоб спростити життя користувачу такої колекції та щоб не викривати логіки колекції, придумали Ітератор, який допомагає легко і грамотно обійти усі об’єкти всередині. Спрощення коодинації роботи між деякою кількістю об’єктів може бути досягнуте виділенням посередника або медіатора. Медіатором може бути ваш бригадир на будівництві або ваш менеджер. Можливість повернутися до попереднього стану системи має велике значення. Така функціональність може бути досягнута Хранителем. Зверху завжди видніше, що коїться внизу. Спостерігач допоможе централізувати огляд роботи декількох класів та генерувати відповідні події. Стан системи та умови переходу між ними можуть бути винесені в окремі класи для легшого контролю над цією системою. Все це досягається за допомогою дизайн патерну Стан. Піти на право чи на ліво, а чи взагалі кудись йти? Відповідь на це питання може залежати від певних параметрів і є нічим іншим як певною Стратегією. Втомились від одноманітної роботи, яка завжди шаблонна, окрім деталей, які час від часу міняються? Віддайте цю робому Шаблонному Методу. Коли потрібно виконати деякі дії над об’єктом, причому вони кожного разу різні, такі дії можуть бути винесені в окремі класи-відвідувачі. Опісля ваш об’єкт може приймати Відвідувачів для виконання конкретних дій.
По матеріалам книги Андрія Будая "Дизайн патерни – просто, як двері". Матеріал розміщується за домовленістю з автором.
13. Ланцюжок Відповідальностей — Chain of responsibility14. Команда — CommandВаш бос дуже вимогливий — він ніколи не переймається тим, як буде робитися робота і не особливо переймається тим, хто її буде робити – йому головне щоб вона була зроблена, як тільки замовник дасть добро. Проте вашому босу ніхто не заважає назначати людей, які будуть працювати над виконанням завдання. 15. Інтерпретер — InterpreterЯкась уявна компанія веде дуже дивний бізнес. Вони скуповують всяке барахло, яке люди виставляють під час так званих «гаражних» розпродаж, набивають ними вантажівки, а в кінці робочого дня пробують порахувати на скільки вони того добра набрали і за скільки зможуть продати в інший час у іншому місці. 16. Ітератор — IteratorУявіть, що ви розробник статегічної воєнної гри. Армія має складну структуру: вона складається із героя і трьох груп. Коли генерал видає указ і ресурси щоб полікувати всіх воїнів (герой також є воїном), ви хочете проітерувати по всіх солдатах і викликати метод Treat() на кожному екземплярі. Як це можна зробити легко і без вникання в структуру армії? 17. Медіатор — Mediator18. Хранитель — MementoЯкщо ви коли небуть бавилися в «стрілялки», то дуже вірогідно, що ви знайомі із значенням хот-кіїв F5 та F9. I, навіть, якщо ви таки не мали шансу в житті погратися в «шпільки», ідея швидкого збереження поточного стану і відновлення до нього ідеологічно є знайомою (навіть якщо це було Ctrl+Z у програмі Word). 19. Спостерігач — Observer20. Стан — State21. Стратегія — Strategy22. Шаблонний метод — Template method23. Відвідувач — VisitorЗверніть увагу на додаткові посиланняЯкщо вас цікавить...Головний розділзагрузка...
|
Сторінки, близькі за змістом Дозволяє доступатися почергово до елементів будь-якої колекції без вникання в суть її імплементації. Шаблони проектування програмного забезпечення (англ. software design patterns) — ефективні способи вирішення задач проектування програмного забезпечення. Шаблон не є закінченим зразком, який можна безпосередньо транслювати в програмний код. Об'єктно-орієнтований шаблон найчастіше є зразком вирішення проблеми і відображає відношення між класами та об'єктами, без вказівки на те, як буде зрештою реалізоване це відношення. |
Copyright © 2008—2024 Портал Знань.
При використанні матеріалів посилання, для інтернет-ресурсів — гіперпосилання, на Znannya.org обов'язкове.
Зв'язок
|
НТУУ "КПІ" Інженерія програмного забезпечення КПІ Лабораторія СЕТ |
|