Skip to content

Dvurechensky/Patterns-Programming

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Typing SVG

Static Badge

🔱 Шаблоны проектирования 🔱

Описание содержимого 💼

  • ⌛ Определения: class, abstract class, struct, interface, record
  • ⌛ Разбор: принципы SOLID, наследование, типы Dictionary, Unit тестирование
  • ⌛ Бонус: решение LetCode задач
  • 😈 Такие паттерны как:

🌐 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 - Заместитель 🔎 Предоставляет объект-заместитель другого объекта для контроля доступа к нему.

Releases

No releases published

Packages

No packages published

Languages