
- •Метрики объектно-ориентированных программных систем
- •Метрические особенности объектно-ориентированных программных систем
- •9. Языка uml. Назн. И эл-ты диаграммы вариантов использования.
- •15. Языка uml. Назначение и элементы диаграммы развертывания.
- •Структурные паттерны. “Facade”. “Flyweight”.
- •Iterator (итератор)
- •Interpreter (Интерпритатор)
- •Visitor (Посетитель)
- •Паттерны поведения. “Observer”. “State”.
- •Назначение и обл. Применения агентно-ориентированной методологии.
- •41. Проектирование распределенных систем. Corba, com, dcom и др.
Структурные паттерны. “Facade”. “Flyweight”.
Façade
(Фасад)
Предоставляет унифицированный интерфейс к множеству интерфейсов в некоторой подсистеме. Определяет интерфейс более высокого уровня, облегчающий работу с подсистемой.
Flyweight (Приспособленец)
Использует разделение для эффективной поддержки большого числа мелких объектов.
Паттерны поведения. “Chain of Responsibility”. “Command”.
Chain of Responsibility (Цепочка обязанностей)
Назначение: позволяет избежать привязки отправителя запроса к его получателю, давая шанс обработать запрос нескольким объектам. Связывает объекты-получатели в цепочку и передает запрос вдоль этой цепочки, пока его не обработают.
Аспект: Объект, выполняющий запрос.
Применимость:
есть более одного объекта, способного
обработать запрос, причем настоящий
обработчик заранее неизвестен и должен
быть найден автоматически; вы хотите
отправить запрос одному из нескольких
объектов, не указывая явно, какому
именно;
набор
объектов, способных обработать запрос,
должен задаваться динамически.
+ ослабляется связанность (объект не обязан знать, кто именно обработает его запрос).
- нет гарантии обработки запроса, поскольку у него нет явного получателя.
Command (Команда)
Проблема:
необходимо послать объекту запрос, не
зная о том, выполнение какой операции
запрошено и кто будет получателем.
+ разрывает связь между объектом, инициирующим операцию, и объектом, инициирующим инфу о том, как ее выполнить. Кроме этого, создается объект command, который можно расширять и манипулировать им как объектом.
Паттерны поведения. “Iterator”. “Mediator”. “Interpreter”.
Iterator (итератор)
Назначение: предоставляет способ последовательного доступа ко всем элементам составного объекта, не раскрывая его внутреннего предствления. Позволяет отделить хранение от способов перебора.
Аспект: способ обхода элементов агрегата (контейнера).
Применимость:
для доступа к содержимому агрегированных объектов без раскрытия их внутреннего представления;
для поддержки нескольких активных обходов одного и того же агрегированного объекта;
для предоставления единообразного интерфейса с целью обхода различных агрегированных структур (то есть для поддержки полиморфной итерации).
Interpreter (Интерпритатор)
Проблема: имеется часто встречающаяся, подверженная изменениям задача.
Решение: создать интерпретатор, который решает данную задачу.
+ грамматику становится легко расширять и изменять, реализации классов, описывающих узлы абстрактного синтаксического дерева похожи (легко кодируются). Можно легко изменять способ вычисления выражений.
- сопровождение грамматики с большим числом правил затруднительно.
Mediator (посредник)
Проблема: обеспечить взаимодействие множества объектов, сформировав при этом слабую связанность и избавив объекты от необходимости явно ссылаться друг на друга.
Решение: создать объект инкапсулирующий способ взаимодействия множества объектов.
+ устраняется связность между «коллегами», централизуется управление.
Паттерны поведения. “Memento”. “Visitor”.