Design Patterns: Singleton, Observer, Factory, Adapter, Iterator, Strategy, Decorator
Другие статьи о Design Patterns:
- Design Patterns основы (GoF)
- Creational Patterns (Singleton, Factory, Builder, Prototype, Abstract Factory)
- Справочник Design Patterns
Эта статья содержит определения ключевых Design Patterns с примерами вопросов и тегами.
В двух словах
Design Patterns представляют собой проверенные решения для повторяющихся проблем в разработке программного обеспечения. Они предоставляют стандартизированные подходы к типичным сценариям и улучшают качество кода, его поддерживаемость и упрощают общение между разработчиками.
Полное описание
Design Patterns получили популярность благодаря “Gang of Four” (GoF) и описывают проверенные стратегии решения типовых задач объектно-ориентированного программирования. Они разделяются на три категории: Creational Patterns (Singleton, Factory), Structural Patterns (Adapter, Decorator) и Behavioral Patterns (Observer, Strategy, Iterator). Паттерны способствуют слабой связанности, высокой когезии и повторному использованию кода. Это не готовые алгоритмы, а абстрактные описания решений, которые нужно адаптировать под конкретный контекст.
Ключевые точки для подготовки
- Creational Patterns: Singleton, Factory, Abstract Factory, Builder
- Structural Patterns: Adapter, Decorator, Facade, Proxy, Composite
- Behavioral Patterns: Observer, Strategy, Iterator, Command, Template Method
- Singleton: глобальный экземпляр, потокобезопасная реализация
- Observer: Publisher-Subscriber, слабая связанность между объектами
- Factory: создание объектов без знания конкретных классов
- Adapter: адаптация интерфейсов между несовместимыми классами
- Iterator: последовательный доступ к элементам коллекции без раскрытия внутренней структуры
- Strategy: взаимозаменяемые алгоритмы через интерфейсы
Основные компоненты
- Singleton Pattern (глобальный экземпляр)
- Factory Pattern (создание объектов)
- Observer Pattern (паттерн наблюдателя)
- Adapter Pattern (адаптация интерфейсов)
- Iterator Pattern (последовательный доступ)
- Strategy Pattern (обмен алгоритмов)
- Decorator Pattern (динамическое расширение)
- Template Method Pattern (шаблон алгоритма)
- MVC Pattern (архитектурный паттерн)
- Registry Pattern (центральный реестр)
Практический пример
// Пример Singleton Pattern
public class DatabaseConnection {
private static DatabaseConnection instance;
private DatabaseConnection() {
// Private Constructor
}
public static synchronized DatabaseConnection getInstance() {
if (instance == null) {
instance = new DatabaseConnection();
}
return instance;
}
}
// Пример Observer Pattern
interface Observer {
void update(String message);
}
class EmailNotification implements Observer {
public void update(String message) {
sendEmail(message);
}
}
Объяснение: Singleton гарантирует единственный глобальный экземпляр, Observer позволяет уведомлять объекты об изменениях состояния.
Преимущества и недостатки
Преимущества
- Проверенные решения для известных проблем
- Улучшенное общение между разработчиками
- Способствуют слабой связанности и высокой когезии
- Повышают повторное использование и поддерживаемость кода
Недостатки
- Могут привести к излишней сложности
- Кривая обучения для новичков
- Иногда избыточное проектирование для простых задач
- Требуют адаптации к конкретному контексту
Типичные вопросы на экзамене (краткие ответы)
-
Три основные категории Design Patterns? Creational (создание), Structural (структура), Behavioral (поведение).
-
Назначение Singleton Pattern? Гарантирует, что от класса существует ровно один экземпляр и он доступен глобально.
-
Когда применяется Observer Pattern? Когда несколько объектов должны быть уведомлены об изменении состояния другого объекта.
-
Какую проблему решает Factory Pattern? Создание объектов без необходимости знать конкретные классы в клиентском коде.
-
В чём отличие Adapter от Decorator? Adapter адаптирует интерфейсы, Decorator динамически добавляет функциональность.
-
Преимущество Iterator Pattern? Обеспечивает единообразный доступ к различным типам коллекций без раскрытия их внутренней структуры.
-
Когда использовать Strategy Pattern? Когда алгоритмы должны быть взаимозаменяемы без изменения клиентского кода.
-
Компоненты MVC Pattern? Model (данные), View (представление), Controller (логика связи между Model и View).
Основные источники
- https://refactoring.guru/design-patterns
- https://de.wikipedia.org/wiki/Entwurfsmuster
- https://www.oracle.com/technical-resources/articles/j2ee/patterns
Рекомендуемая литература: Design Patterns
Keine Bücher für Kategorie "design-patterns" gefunden.



