Порождающие шаблоны проектирования



бет1/15
Дата01.10.2022
өлшемі254,47 Kb.
#41019
  1   2   3   4   5   6   7   8   9   ...   15
Байланысты:
Шаблоны проектирования (порождающие) (1)


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

  • Порождающие шаблоны, предназначенные для создания новых объектов в системе;

  • Структурные шаблоны, решающие задачи компоновки системы на основе классов и объектов;

  • Шаблоны поведения, предназначенные для распределения обязанностей между объектами в системе.

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

  • Пехота;

  • Конница;

  • Лучники.

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

Рисунок 1 Диаграмма классов для войск
Структура классов выглядит следующим образом:
Класс Warrior (воин – базовый абстрактный класс для всех видов войск)
///
/// Воин
///

public abstract class Warrior
{
///
/// Иформация
///

public abstract string Info();
}


Достарыңызбен бөлісу:
  1   2   3   4   5   6   7   8   9   ...   15




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет