An open API service indexing awesome lists of open source software.

https://github.com/theoctan/design-patterns-cs

Concrete examples of design patterns in gamedev in C#
https://github.com/theoctan/design-patterns-cs

architecture csharp design-pattern design-patterns

Last synced: 9 months ago
JSON representation

Concrete examples of design patterns in gamedev in C#

Awesome Lists containing this project

README

          

# C# Design Patterns

### Creational Patterns ([Порождающие паттерны])
* ([Abstract Factory]) Абстрактная фабрика - создаёт семейство взаимносвязных объектов
* ([Builder]) Строитель - поэтамное создание сложного объекта
* ([Factory Method]) Фабричный метод - определяет интерфейс для создания объекта, при этом его тип определяется подклассами
* ([Object Pool]) Пул объектов - создание "затратных" объектов за счёт их многократного использования
* ([Prototype]) Прототип - создание объектов на основе прототипов
* ([Singleton]) Одиночка - создаёт единственный экземпляр некоторого класса и предоставляет к нему доступ
### Structural Patterns ([Структурные паттерны])
* ([Adapter]) Адаптер - преобразует интерфейс существующего класса к виду, подходящему для использования
* ([Bridge]) Мост - делает абсракцию и реализацию независимыми друг от друга
* ([Composite]) Компоновщик - группирует схожие объекты в древовидные структуры
* ([Decorator]) Декоратор - динамически добавляет объекту новую функциональность
* ([Facade]) Фасад - предоставляет унифицированный интерфейс вместо набора интерфейсов некоторой системы
* ([Flyweight]) Приспособленец - использует разделение для поддержки множества мелких объектов
* ([Proxy]) Заместитель - подменяет другой объект для контроля доступа к нему
### Behavioral Patterns ([Паттерны поведения])
* ([Chain of Responsibility]) Цепочка обязанностей - предоставляет способ передачи запроса по цепочке получателей
* ([Command]) Команда - Инкапсулирует запрос в виде объекта
* ([Interpreter]) Интерпертатор - для языка определяет его грамматику и интерпритатор, использующий эту грамматику
* ([Iterator]) Итератор - предоставляет механизм обхода элементов коллекции
* ([Mediator]) Посредник - Инкапсулирует взаимодействие между множеством объектов в объект-посредник
* ([Memento]) Хранитель - сохраняет и восстанавливает состояние объекта
* ([Observer]) Наблюдатель - при изменении объекта извещает все зависимые объекты для их обновления
* ([State]) Состояние - изменяет поведение объекта при изменении его состояния
* ([Strategy]) Стратегия - переносит алгоритмы в отдельную иерархию классов, делая их взаимозаменяемыми
* ([Template Method]) Шаблонный метод - определяет шаги алгоритма, позволяя подклассам изменить некоторые из них
* ([Visitor]) Посетитель - определяет новую операцию в классе без его изменения

[Adapter]: https://github.com/TheOctan/Design-Patterns-CS/edit/master/Structural%20Patterns/Adapter
[Bridge]: https://github.com/TheOctan/Design-Patterns-CS/tree/master/Structural%20Patterns/Bridge

[Decorator]: https://github.com/TheOctan/Design-Patterns-CS/tree/master/Structural%20Patterns/Decorator

[Command]: https://github.com/TheOctan/Design-Patterns-CS/tree/master/Behavioral%20Patterns/Command

[Observer]: https://github.com/TheOctan/Design-Patterns-CS/tree/master/Behavioral%20Patterns/Observer
[State]: https://github.com/TheOctan/Design-Patterns-CS/tree/master/Behavioral%20Patterns/State
[Strategy]: https://github.com/TheOctan/Design-Patterns-CS/tree/master/Behavioral%20Patterns/Strategy
[Template Method]: https://github.com/TheOctan/Design-Patterns-CS/tree/master/Behavioral%20Patterns/Template%20Method
[Visitor]: https://github.com/TheOctan/Design-Patterns-CS/tree/master/Behavioral%20Patterns/Visitor