Если задача сформулирована в связи с развитием программного продукта, то следует уточнить предлагаемое решение в форме рекомендуемых паттернов программирования.

8.1. Если нужно устранить вредную связь:

Если один элемент (создатель) содержит алгоритм создания второго элемента и при этом:

– Нужно заменять порождаемый элемент без изменения создателя. Фабричный метод

– Нужно заменять семейство порождаемых элементов без изменения создателя. Абстрактная фабрика

– Алгоритм создания элемента не должен зависеть от того, из каких частей и в какой их комбинации состоит порождаемый элемент. Строитель

Интерфейс одного элемента не должен зависеть от интерфейса второго. Адаптер.

Нужно создавать элемент/получать к нему доступ только в конкретных случаях. Заместитель.

Нужно одинаково обращаться к элементам, не зависимо, являются они простыми и составными. Компоновщик

Нужно отделить абстракцию элемента от реализации. Мост

Нужно снизить зависимость между подсистемами. Фасад

Нужно обеспечить слабую связанность между элементами системы. Посредник

Нужно избежать связи между отправителем запроса и получателем. Цепочка обязанностей

8.2. Если нужно повысить эффективность:

Если один элемент (создатель) содержит алгоритм создания второго элемента и при этом:

– Нужно переопределить алгоритмы создания элементов в элементах-потомках. Фабричный метод

– Нужно переопределить алгоритмы создания семейств элементов в элементах-потомках. Абстрактная фабрика

– Нужно гарантировать, что элемент создан в единственном экземпляре. Одиночка

– Новые элементы создаются путем копирования элемента-прототипа. Прототип

Нужно обеспечить совместное использование элементов с различными интерфейсами. Адаптер

Нужно динамически расширить функциональность элемента, добавить ему новые обязанности на время. Декоратор

Нужно заменить элемент до момента, когда он действительно понадобится. Заместитель

Нужно одинаково обращаться с простыми и составными элементами. Компоновщик

Нужно ограничить набор экземпляров элементов. Приспособленец

Нужно предоставить доступ к элементам подсистемы с помощью одного элемента. Фасад

Нужно переопределить шаги алгоритма в элементах-потомках. Шаблонный метод

Нужно предоставить последовательный доступ ко всем подэлементам составного элемента. Итератор

Нужно представить запрос в виде элемента, ставить запросы в очередь, поддерживать отмену операций. Команда

Элементы должны изменять свое состояние в зависимости от состояния других элементов. Наблюдатель

Нужно объединить все связи между элементами в одном элементе. Посредник

Нужно обойти элементы структуры, выполнив над каждым из них некоторую операцию. Посетитель

Нужно изменять поведение элемента в зависимости от его состояния. Состояние

Нужно определить семейство взаимозаменяемых алгоритмов в виде элементов. Стратегия

Нужно сохранить состояние элемента, восстановить элемент в нужном состоянии. Хранитель

Если удалось выбрать подходящий вариант, переход к описанию подходящего паттерна.








Дата добавления: 2016-03-15; просмотров: 929;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.01 сек.