Паттерны проектирования в 4х стратегии.

Что такое паттерн проектирования 

Шаблон проектирования или паттерн  в разработке программного обеспечения — повторяемая архитектурная конструкция, представляющая собой решение проблемы проектирования в рамках некоторого часто возникающего контекста.

Паттерны которые мы используем в дипломном проекте.

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

1)Паттерн строитель(Builder). Данный паттерн нам помогает правильно создать основные компоненты игры и настроить между ними связи.





2)Паттерн фабрика(Factory). Данный паттерн позволит нам разбить все создаваемые элементы на группы(здания, юниты, ресурсы на карте, события) ,а объекты этих групп будут создавать узконаправленные фабрики. То есть фабрика зданий может делать только здания, а фабрика юнитов  только юнитов.



3)Паттерн наблюдатель (Observer). Данный паттерн наблюдает за действиями игрока и реализует их последствия. Например при строительстве здания у игрока вычитаются ресурсы, а в клетке на которой построилось здание ставится флаг ,что здания больше строить нельзя.



4)Паттерн одиночка(Singleton). Данный паттерн нам поможет создать сущности игроков. У игроков только одно хранилище ресурсов, одна фабрика зданий, одна фабрика юнитов. Так на карте только один объект очереди ходов, и фабрики событий.

Паттерны которые думаем использовать в дипломном проекте, но до которых еще не добрались.

1)Паттерн Object Pool. Данный паттерн подразумевает, что мы объекты не удаляем а прячем, а когда нам нужно создать подобный объект мы его редактируем и показываем. Например юнита убили, мы его не удаляем а деактивируем, и когда  его сделают еще раз то мы меняем  все параметры юнита и включаем его обратно.

2)MVС для user interface. Model это  данные которые есть у игрока например его ресурсы из хранилища ресурсов. View это представление на canvas. Сontroller отвечает за изменение ресурсов в обоих элементах

Использованные источники

  1. https://metanit.com/sharp/patterns/ 
  2. Шаблон проектирования — Википедия (wikipedia.org)
  3. Шаблоны проектирования с человеческим лицом / Хабр (habr.com)