Встречается на собеседованиях • сегодня
Какие знаешь паттерны проектирования кроме Singleton
Вот несколько популярных паттернов проектирования с кратким описанием и примером:
**Factory Method** – создает объекты без указания конкретного класса.
```java
interface Animal { void speak(); }
class Dog implements Animal { public void speak() { System.out.println("Woof!"); } }
class AnimalFactory {
public Animal createAnimal(String type) {
if ("dog".equals(type)) return new Dog();
throw new IllegalArgumentException("Unknown animal type");
}
}
```
**Observer** – уведомляет зависимые объекты об изменениях.
```java
interface Observer { void update(String message); }
class NewsAgency {
private List observers = new ArrayList<>();
public void addObserver(Observer o) { observers.add(o); }
public void notifyObservers(String news) { observers.forEach(o -> o.update(news)); }
}
```
**Decorator** – динамически добавляет функциональность объекту.
```java
interface Coffee { double getCost(); }
class SimpleCoffee implements Coffee { public double getCost() { return 1.0; } }
class MilkDecorator implements Coffee {
private Coffee coffee;
public MilkDecorator(Coffee c) { this.coffee = c; }
public double getCost() { return coffee.getCost() + 0.5; }
}
```
Также часто используются:
- **Strategy** – инкапсулирует алгоритмы
- **Builder** – пошаговое создание сложных объектов
- **Adapter** – преобразует интерфейс класса
- **Command** – инкапсулирует запрос как объект
- **Proxy** – контролирует доступ к объекту

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы