Интернет магазин китайских планшетных компьютеров |
|
Компьютеры - Стратегия (шаблон проектирования)30 марта 2011поведенческий шаблон проектирования, предназначенный для определения семейства алгоритмов, инкапсуляции каждого из них и обеспечения их взаимозаменяемости. Это позволяет выбирать алгоритм путем определения соответствующего класса. Шаблон Strategy позволяет менять выбранный алгоритм независимо от объектов-клиентов, которые его используют. Основные характеристикиЗадачаВыбор алгоритма, который следует применить, в зависимости от типа выдавшего запрос клиента или обрабатываемых данных. Если используется правило, которое не подвержено изменениям, нет необходимости обращаться к шаблону «стратегия». Мотивы
Способ решенияОтделение процедуры выбора алгоритма от его реализации. Это позволяет сделать выбор на основании контекста. Участники
Следствия
РеализацияКласс, который использует алгоритм, включает абстрактный класс, обладающий абстрактным методом, определяющим способ вызова алгоритма. Каждый производный класс реализует один требуемый вариант алгоритма. Замечание: метод вызова алгоритма не должен быть абстрактным, если требуется реализовать некоторое поведение, принимаемое по умолчанию. Полезные сведения
ИспользованиеАрхитектура Microsoft WDF основана на этом паттерне. У каждого объекта "драйвер" и "устройство" есть неизменяемая часть, вшитая в систему, в которой регистрируется изменяемая часть, написанная в конкретной реализации. Изменяемая часть может быть и вовсе пустой, что даст ничего не делающий драйвер, но при этом способный участвовать в PnP и управлении питанием. Библиотека ATL содержит в себе набор классов threading model, которые являются стратегиями. При этом в этих стратегиях используется статический полиморфизм через параметр шаблона, а не динамический полиморфизм через виртуальные методы. ПримерыПример на C#Просмотров: 1353
|