Skip to content
IRC-CodingIRC-Coding
Design PatternsSingletonObserverFactoryAdapterIteratorStrategyDecoratorTemplate MethodMVCАлгоритмыОсновы

Design Patterns: Singleton, Observer, Factory, Adapter

Design Patterns — проверенные решения для типичных задач. Singleton, Observer, Factory, Adapter, Iterator, Strategy, Decorator и MVC.

S

schutzgeist

2 min read
Design Patterns: Singleton, Observer, Factory, Adapter

Design Patterns: Singleton, Observer, Factory, Adapter, Iterator, Strategy, Decorator

Другие статьи о 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: взаимозаменяемые алгоритмы через интерфейсы

Основные компоненты

  1. Singleton Pattern (глобальный экземпляр)
  2. Factory Pattern (создание объектов)
  3. Observer Pattern (паттерн наблюдателя)
  4. Adapter Pattern (адаптация интерфейсов)
  5. Iterator Pattern (последовательный доступ)
  6. Strategy Pattern (обмен алгоритмов)
  7. Decorator Pattern (динамическое расширение)
  8. Template Method Pattern (шаблон алгоритма)
  9. MVC Pattern (архитектурный паттерн)
  10. 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 позволяет уведомлять объекты об изменениях состояния.

Преимущества и недостатки

Преимущества

  • Проверенные решения для известных проблем
  • Улучшенное общение между разработчиками
  • Способствуют слабой связанности и высокой когезии
  • Повышают повторное использование и поддерживаемость кода

Недостатки

  • Могут привести к излишней сложности
  • Кривая обучения для новичков
  • Иногда избыточное проектирование для простых задач
  • Требуют адаптации к конкретному контексту

Типичные вопросы на экзамене (краткие ответы)

  1. Три основные категории Design Patterns? Creational (создание), Structural (структура), Behavioral (поведение).

  2. Назначение Singleton Pattern? Гарантирует, что от класса существует ровно один экземпляр и он доступен глобально.

  3. Когда применяется Observer Pattern? Когда несколько объектов должны быть уведомлены об изменении состояния другого объекта.

  4. Какую проблему решает Factory Pattern? Создание объектов без необходимости знать конкретные классы в клиентском коде.

  5. В чём отличие Adapter от Decorator? Adapter адаптирует интерфейсы, Decorator динамически добавляет функциональность.

  6. Преимущество Iterator Pattern? Обеспечивает единообразный доступ к различным типам коллекций без раскрытия их внутренней структуры.

  7. Когда использовать Strategy Pattern? Когда алгоритмы должны быть взаимозаменяемы без изменения клиентского кода.

  8. Компоненты MVC Pattern? Model (данные), View (представление), Controller (логика связи между Model и View).

Основные источники

  1. https://refactoring.guru/design-patterns
  2. https://de.wikipedia.org/wiki/Entwurfsmuster
  3. https://www.oracle.com/technical-resources/articles/j2ee/patterns

Рекомендуемая литература: Design Patterns

Keine Bücher für Kategorie "design-patterns" gefunden.

Назад к блогу
Share:

Nächster Artikel in Архитектура программного обеспечения

Weiterlesen
Design Patterns vs Architecture Patterns: различия

Похожие статьи