Встречается на собеседованиях • сегодня
Какие используешь паттерны проектирования
Чаще всего использовал:
1. **Singleton** - для управления конфигурацией или подключением к БД. Пример:
```java
public class Database {
private static Database instance;
private Database() {}
public static synchronized Database getInstance() {
if (instance == null) {
instance = new Database();
}
return instance;
}
}
```
2. **Factory Method** - для создания объектов без явного указания классов:
```java
public interface Payment {
void process();
}
public class PaymentFactory {
public Payment createPayment(String type) {
switch(type) {
case "credit": return new CreditCardPayment();
case "paypal": return new PayPalPayment();
default: throw new IllegalArgumentException();
}
}
}
```
3. **Observer** - в event-driven архитектуре:
```java
public interface EventListener {
void update(String event);
}
public class EventManager {
private List listeners = new ArrayList<>();
public void subscribe(EventListener listener) {
listeners.add(listener);
}
public void notify(String event) {
listeners.forEach(l -> l.update(event));
}
}
```
Также применял Decorator, Strategy, Builder в зависимости от задач. Паттерны помогают создавать гибкий и поддерживаемый код.

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