CodeLAB
на главную карта сайта обратная связь

Популярные задачи:

#Сохранение данных формы после перезагрузки через куки. (204900 hits)
#qForms, библиотека типичного функционала валидации/построения/связки html-форм. (147533 hits)
#Сравнение алгоритмов быстрой сортировки. (74057 hits)
#Циклический сдвиг массива или строки - 3 уникальных алгоритма. (389877 hits)
#Простая геометрическая и текстовая анимация. (401092 hits)
#Сравнение алгоритмов сортировки массива. (182477 hits)
#Древовидные структуры. (57547 hits)
#Вставка новой записи в таблицу БД. (36691 hits)
#Валидация, динамическая проверка заполнения html форм. (209384 hits)
#Работа с камерой. (35963 hits)
#Синус. (60918 hits)
#сортировка пузырьком. (153097 hits)
#Рисование окружности (по Брезенхэму). (33988 hits)
#Глубокое полное клонирование. (35988 hits)
#Рисование множества Мандельброта. (44504 hits)
#Простой генератор случайных чисел. (134241 hits)
#Обновление нескольких записей таблицы. (32632 hits)
#Вычисление двойного интеграла с использованием MPI. (60447 hits)
#Заливка замкнутой области. (62606 hits)
#Сглаживание кривой В-сплайном. (38926 hits)


Главная >> Каталог задач >> Паттерны >> Поведения

Раздел Поведения, Паттерны

Всего: 11


Паттерны поведения связаны с алгоритмами и распределением обязанностей между объектами. Речь в них идет не только о самих объектах и классах, но и о типичных способах взаимодействия. Паттерны поведения характеризуют сложный поток управления, который трудно проследить во время выполнения программы. Внимание акцентировано не на потоке управления как таковом, а на связях между объектами во время выполнения.

В паттернах поведения уровня класса используется наследование - чтобы распределить поведение между разными классами. Из них более простым и широко распространенным является шаблонный метод, который представляет собой абстрактное определение алгоритма. Алгоритм здесь определяется пошагово. На каждом шаге вызывается либо примитивная, либо абстрактная операция. Алгоритм «обрастает мясом» за счет подклассов, где реализованы его абстрактные операции. Другой паттерн поведения уровня класса - интерпретатор, который представляет грамматику языка в виде иерархии классов и реализует интерпретатор как последовательность операций над экземплярами этих классов.

В паттернах поведения уровня объектов используется не наследование, а композиция. Некоторые из них описывают, как с помощью кооперации – множество равноправных объектов справляется с задачей, которая ни одному из них не под силу. Важно здесь то, как объекты получают информацию о существовании друг друга. Объекты-коллеги могут хранить ссылки друг на друга, но это увеличит степень связанности системы. При максимальной степени связанности каждому объекту пришлось бы иметь информацию обо всех остальных. Эту проблему решает паттерн посредник. Посредник, находящийся между объектами-коллегами, обеспечивает косвенность ссылок, необходимую для разрывания лишних связей.

Паттерн цепочка обязанностей позволяет и дальше уменьшать степень связанности. Он дает возможность посылать запросы объекту не напрямую, а по цепочке «объектов-кандидатов». Запрос может выполнить любой «кандидат», если это допустимо в текущем состоянии выполнения программы. Число кандидатов заранее не определено, а подбирать участников можно во время выполнения.

Паттерн наблюдатель определяет и отвечает за зависимости между объектами. Классический пример наблюдателя встречается в схеме модель/вид/контроллер, где все виды модели уведомляются о любых изменениях ее состояния.

Прочие паттерны поведения связаны с инкапсуляцией поведения в объекте и делегированием ему запросов. Паттерн стратегия инкапсулирует алгоритм объекта, упрощая его спецификацию и замену. Паттерн команда инкапсулирует запрос в виде объекта, который можно передавать как параметр, хранить в списке истории или использовать как-то иначе. Паттерн состояние инкапсулирует состояние объекта таким образом, что при изменении состояния объект может изменять поведение. Паттерн посетитель инкапсулирует поведение, которое в противном случае пришлось бы распределять между классами, а паттерн итератор абстрагирует способ доступа и обхода объектов из некоторого агрегата (списка).

все паттерны, расширенный поиск>>
Сортировать по: названию, числу реализаций, дате, популярности, рейтингу, страницы: 1 2
pattern#: 217 [раздел: Поведения | hits: 83204]
Паттерн: [1]
аннотация: Хранитель - паттерн поведения объектов, сохраняющий состояния.
 содержание: «Паттерн Memento» Хранитель - паттерн поведения объектов, сохраняющий состояния. Известен также под именем Token (лексема). Не нарушая инкапсуляции, фиксирует и выносит за пределы объекта его внутреннее состояние так, чтобы позднее можно было восстановить в нем объект. ...
Aвтор: [добавлена: ]
11
страницы: 1 2
<< назад +добавить Паттерн
Всего: 11