Какие паттерны знаешь
- Паттерны порождающие, создания объектов (Creational):
- Singleton (Одиночка)
- Abstarct Factory (Абстрактная фабрика)
- Abstract method (Абстрактный метод)
- Паттерны структурные (Structural):
- MVC
- Decorator (Декоратор)
- Adapter/Bridge (Адаптер/Мост)
- Facade (Фасад)
- Composite (Компоновщик)
- Паттерны поведения и взаимодействия объектов (Behavioral):
- Observer: Notification, KVO (Наблюдатель: нотификация, Наблюдение свойствами)
- Memento (Archiving+UserDefaults)
- Command (Target-Action mechanism) (Команда)
- Template method (Шаблонный метод)
- Strategy/State (Стратегия/Состояние)
Oct. 14, 2023, Источник
Существует множество паттернов проектирования, каждый из которых решает определённую задачу или предлагает эффективный подход к организации кода. Они помогают делать код более читаемым, упрощают рефакторинг и поддержку программы. Паттерны обычно классифицируют на три основных типа: порождающие, структурные и поведенческие.
Порождающие паттерны (Creational Patterns)
Упрощают процесс создания объектов, делая систему независимой от способа создания, компоновки и представления объектов.
- Одиночка (Singleton): Обеспечивает наличие только одного экземпляра класса и предоставляет к нему глобальный доступ.
- Фабричный метод (Factory Method): Определяет интерфейс для создания объекта, но позволяет подклассам изменять тип создаваемых объектов.
- Абстрактная фабрика (Abstract Factory): Позволяет создавать семейства связанных или зависимых объектов без указания их конкретных классов.
- Прототип (Prototype): Позволяет копировать существующие объекты без делания кода зависимым от их классов.
- Строитель (Builder): Позволяет создавать сложные объекты пошагово, используя один и тот же код для создания различных представлений объектов.
Структурные паттерны (Structural Patterns)
Описывают, как объединять объекты и классы в более крупные структуры.
- Адаптер (Adapter): Позволяет объектам с несовместимыми интерфейсами работать вместе.
- Мост (Bridge): Разделяет один или несколько классов на две отдельные иерархии — абстракцию и реализацию, позволяя им изменяться независимо друг от друга.
- Композит (Composite): Позволяет группировать множество объектов в древовидную структуру, и работать с этой структурой так, как будто это единственный объект.
- Декоратор (Decorator): Позволяет динамически добавлять новые функции объектам, помещая их в объекты-обёртки.
- Фасад (Facade): Предоставляет простой интерфейс к сложной системе классов, библиотеке или фреймворку.
Поведенческие паттерны (Behavioral Patterns)
Регулируют эффективное взаимодействие и распределение обязанностей между объектами.
- Наблюдатель (Observer): Позволяет объектам получать уведомления об изменениях в других объектах.
- Стратегия (Strategy): Определяет семейство алгоритмов, инкапсулирует каждый из них и делает их взаимозаменяемыми.
- Состояние (State): Позволяет объекту изменять своё поведение в зависимости от его состояния.
- Команда (Command): Превращает запросы в объекты, позволяя передавать их как аргументы при вызове методов, ставить их в очередь, логировать и т.д.
- Цепочка обязанностей (Chain of Responsibility): Позволяет передавать запросы последовательно по цепочке обработчиков, пока один из них не обработает запрос.
- Посредник (Mediator): Позволяет уменьшить взаимосвязь между классами, вынося межклассовые взаимодействия в класс-посредник.
- Итератор (Iterator): Даёт возможность последовательно обходить элементы составных объектов, не раскрывая их внутреннего представления.
Каждый паттерн проектирования решает определённую проблему и может быть полезен в различных ситуациях. Однако важно помнить, что применение паттернов требует умения и понимания конкретной задачи, для которой он может быть использован.
April 10, 2024, easyoffer