Встречается на собеседованиях • сегодня
Как реализуешь паттерн Low Coupling при Refactoring
Для снижения связанности (Low Coupling) при рефакторинге применяют:
- Интерфейсы вместо конкретных классов
java
interface PaymentProcessor { void processPayment(); } class CreditCardProcessor implements PaymentProcessor { public void processPayment() { /* logic */ } } class OrderService { private PaymentProcessor processor; // Зависим от абстракции }
-
Dependency Injection – внедрение зависимостей через конструктор/сеттеры
javaclass OrderService { private final PaymentProcessor processor; public OrderService(PaymentProcessor processor) { this.processor = processor; // DI через конструктор } } -
Фасады/Медиаторы – скрытие сложных взаимодействий за простым интерфейсом
-
Событийная модель – вместо прямых вызовов используем Publisher-Subscriber
Ключевые принципы:
- Минимизация прямых ссылок между классами
- Замена наследования на композицию
- Использование слоев абстракции
Пример рефакторинга:
java
// Было (высокая связанность)
class ReportGenerator {
private MySQLDatabase db; // Прямая зависимость
}
// Стало
class ReportGenerator {
private DatabaseInterface db; // Зависимость от интерфейса
}
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы