https://github.com/dvurechensky/patterns-programming
Разбор шаблонов проектирования
https://github.com/dvurechensky/patterns-programming
csharp dvurechenskypro education patterns programming
Last synced: 3 months ago
JSON representation
Разбор шаблонов проектирования
- Host: GitHub
- URL: https://github.com/dvurechensky/patterns-programming
- Owner: Dvurechensky
- License: cc0-1.0
- Created: 2022-08-07T09:52:04.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2023-08-06T11:50:58.000Z (almost 2 years ago)
- Last Synced: 2024-12-31T07:32:34.997Z (5 months ago)
- Topics: csharp, dvurechenskypro, education, patterns, programming
- Language: C#
- Homepage: https://sites.google.com/view/dvurechensky
- Size: 156 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
🔱 Шаблоны проектирования 🔱
## Описание содержимого 💼
- ⌛ Определения: **class, abstract class, struct, interface, record**
- ⌛ Разбор: **принципы SOLID, наследование, типы Dictionary, Unit тестирование**
- ⌛ Бонус: **решение [LetCode](https://leetcode.com/) задач**
- 😈 Такие паттерны как:
>🌐 Behavioral - Поведенческие [11]🌐
Паттерн
Краткое определение
💢 ChainOfResponsibility - Цепочка обязанностей
🔎 Избегает связывание отправителя запроса с его получателем, давая возможность обработать запрос более чем одному объекту.
💢 Command - Команда
🔎 Инкапсулирует запрос в виде объекта позволяя передавать их клиентам в качестве параметров, ставить в очередь, логировать, а также поддерживать отмену операций.
💢 Interpreter - Интерпретатор
🔎 Получая формальный язык, определяет представление его грамматики и интерпретатор, использующий это представление для обработки выражений языка.
💢 Iterator - Итератор
🔎 Предоставляет способ последовательного доступа к множеству, независимо от его внутреннего устройства.
💢 Mediator - Посредник
🔎 Определяет объект инкапсулирующий способ взаимодействия объектов. Обеспечивает слабую связь, избавляя их от необходимости ссылаться друг на друга и даёт возможность независимо изменять их взаимодействие.
💢 Memento - Хранитель
🔎 Не нарушая инкапсуляцию, определяет и сохраняет внутреннее состояние объекта и позволяет позже восстановить объект в этом состоянии.
💢 Observer - Наблюдатель
🔎 Определяет зависимость один ко многим между объектами так, что когда один меняет своё состояние, все зависимые объекты оповещаются и обновляются автоматически.
💢 State - Состояние
🔎 Позволяет объекту изменять своё поведение в зависимости от внутреннего состояния.
💢 Strategy - Стратегия
🔎 Определяет группу алгоритмов, инкапсулирует их и делает взаимозаменяемыми. Позволяет изменять алгоритм независимо от клиентов, его использующих.
💢 TemplateMethod - Шаблонный метод
🔎 Определяет алгоритм, некоторые этапы которого делегируются подклассам. Позволяет подклассам переопределить эти этапы, не меняя структуру алгоритма.
💢 Visitor - Посетитель
🔎 Представляет собой операцию, которая будет выполнена над объектами группы классов. Даёт возможность определить новую операцию без изменения кода классов, над которыми эта операция производитcя.
💡 Creational - Порождающие [6]💡
Паттерн
Краткое определение
💢 AbstractFactory - Абстрактная фабрика
🔎 Предоставляет интерфейс для создания групп связанных или зависимых объектов, не указывая их конкретный класс.
💢 Builder - Строитель
🔎 Разделяет создание сложного объекта и его инициализацию так, что одинаковый процесс построения может может создавать объекты с разным состоянием.
💢 FactoryMethod - Фабричный метод
🔎 Определяет интерфейс для создания объекта, но позволяет подклассам решать, какой класс создавать. Позволяет делегировать создание класса объектам класса.
💢 FluentBuilder - Гибкий(плавный, текучий) строитель
🔎 Позволяет упростить процесс создания сложных объектов с помощью методов-цепочек, которые наделяют объект каким-то определенным качеством.
💢 Prototype - Прототип
🔎 Определяет несколько видов объектов, чтобы при создании использовать объект-прототип и создаёт новые объекты, копируя прототип (техника клонирования объектов).
💢 Singleton - Одиночка
🔎 Гарантирует что класс имеет только один экземпляр и представляет глобальную точку доступа к нему.
🏩 Structural - Структурные [7]🏩
Паттерн
Краткое определение
💢 Adapter - Адаптер
🔎 Конвенртирует интерфейс класса в другой интерфейс, ожидаемый клиентом. Позволяет классам с разными интерфейсами работать вместе.
💢 Bridge - Мост
🔎 Разделяет абстракцию и реализацию так, чтобы они могли изменяться независимо друг от друга.
💢 Composite - Компоновщик
🔎 Компонует объекты в древовидную структуру по принципу "часть-целое", представляя их в виде иерархии. Позволяет клиенту одинаково обращаться как к отдельному, так и к целому поддереву.
💢 Decorator - Декоратор
🔎 Динамически предоставляет объекту дополнительные возможности. Представляет собой гибкую альтернативу наследованию для расширения функциональности.
💢 Facade - Фасад
🔎 Предоставляет единый интерфейс к группе интерфейсов подсистемы. Определяет высокоуровневый интерфейс, делая систему проще для использования.
💢 Flyweight - Приспособленец
🔎 Благодаря совместному использованию, поддерживает эффективную работу с большим количеством объектов. (для оптимизации работы с памятью)
💢 Proxy - Заместитель
🔎 Предоставляет объект-заместитель другого объекта для контроля доступа к нему.