Порождающие шаблоны проектирования
Шаблонами проектирования (Design Patterns) называют решения часто встречающихся проблем в области разработки программного обеспечения. Шаблоны проектирования не являются готовыми решениями, которые можно трансформировать непосредственно в код, а представляют общее описание решения проблемы, которое можно использовать в различных ситуациях.
Существуют несколько типов шаблонов проектирования, каждый из которых предназначен для решения своего круга задач:
Порождающие шаблоны, предназначенные для создания новых объектов в системе;
Структурные шаблоны, решающие задачи компоновки системы на основе классов и объектов;
Шаблоны поведения, предназначенные для распределения обязанностей между объектами в системе.
Порождающие шаблоны проектирования предназначены для создания объектов, позволяя системе оставаться независимой как от самого процесса порождения, так и от типов порождаемых объектов. Прежде чем рассматривать особенности каждого из порождающих шаблонов, рассмотрим на примере типичные проблемы, встающие перед разработчиками при порождении в системе объектов новых типов.
Рассмотрим принципы работы с порождающими шаблонами на примере создания игры, где будет необходимо создавать войска разных типов:
Пехота;
Конница;
Лучники.
Каждый из этих видов войска будет обладать собственными характеристиками. Проектирование архитектуры должно учитывать возможности внесения изменения в иерархию классов, создание новых видов войск, изменение их характеристик.
Простейшим решением будет создание иерархии классов для каждого вида войска:
Рисунок 1 Диаграмма классов для войск Структура классов выглядит следующим образом:
Класс Warrior (воин – базовый абстрактный класс для всех видов войск) /// /// Воин
/// public abstract class Warrior
{
/// /// Иформация
/// public abstract string Info();
}