Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Volodichev/patterns
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Паттерны в python (Patterns)
Паттерн проектирования — это часто встречающееся решение определённой проблемы при проектировании архитектуры программ. Паттерны часто путают с алгоритмами, ведь оба понятия описывают типовые решения каких-то известных проблем. Если привести аналогии, то алгоритм — это кулинарный рецепт с чёткими шагами, а паттерн — инженерный чертёж, на котором нарисовано решение, но не конкретные шаги его реализации.
Порождающие паттерны(Creational Patterns):
беспокоятся о гибком создании объектов без внесения в программу лишних зависимостей.
- Абстрактная фабрика (Abstract Factory) Семейства связанных объектов.
- Строитель (Builder) Cложные объекты пошагово. один код для разных объектов.
- Фабричный метод (Factory Method) Общий интерфейс для подклассов изменет тип объектов.
- Прототип (Prototype) Копируем объекты, не вдаваясь в подробности реализации.
- Одиночка (Singleton) Класс имеет только один экземпляр, и глобальную точку доступа.
- Моностатический синглтон (Borg)
- Ленивая оценка (Lazy evaluation)
- Пул объектов (Object pool)
Структурные паттерны(Structural Patterns):
показывают различные способы построения связей между объектами.
- Адаптер (Adapter) Несовместимые интерфейсы
- Компоновщик (Composite) Древовидная структуруа
- Декоратор/оформитель (Decorator/Wrapper) Функциональность через «обёртки».
- Фасад (Facade) Простой интерфейс к сложной структуре
- Мост (Bridge) Абстракция + Реализация
- Легковес/Приспособленец (Flyweight) Разделяя общее состояние объектов
- Заместитель/прокси/суррогат (Proxy/surrogate) Подставляет объекты-заменители.
- Трехзвенка (Three-Tier/3-tier)
- Единая точка входа (Front controller)
- Модель Отображенин Контроллер(MVC)
Поведенческие паттерны(Behavioral Patterns):
заботятся об эффективной коммуникации между объектами.
- Команда/действие (Command/action) Передает запросы в объекты как аргументы.
- Итератор/указатель (Iterator) Последовательный обход элементов составных объектов.
- Наблюдатель/слушатель (Observer/Listener) Один объект следит за другим.
- Стратегия (Strategy) Схожие алгоритмы в класс.
- Посредник (Mediator) Перемещение связей в один класс-посредник.
- Состояние (State) Меняет поведение в зависимости от состояния.
- Шаблонный метод (Template Method) Перекладывает ответственность на подклассы не меняя его общей структуры.
- Цепочка обязанностей (Chain of Responsibility) Запросы по цепочке обработчиков.
- Снимок/Хранитель (Memento) Снимки состояния объектов.
- Классная доска (Blackboard)(доска объявлений)
- Посетитель (Visitor) Новые операции, не меняя классы объектов.
- Одноразовый посетитель (Single-serving visitor)
- Иерархический посетитель (Hierarchical visitor)
- Каталог (Сatalog)
- Цепь методов (Chaining method)
- Издатель-подписчик (Publish subscribe/Pub-sub)
- Спецификация/пределение (Specification)
- Слуга (Servant)
- Подчинение (Subsumption)
- Внедрение зависимости (Dependency injection)
- Отложенная инициализация (Lazy initialization)
- Шаблон делегирования (Delegation pattern)
- Поиск в графе(Graph search)
- Машина состояний (Hierarchical State Machine/HSM)
- Реестр/Журнал записей (Registry)
- Наследование (Inheritance)
- Нейтральный объект (Null)
- Сокрытие (Closure)
- Пул «одиночек» (Multiton)