Встречается на собеседованиях • сегодня

Что такое слабосвязанный код

Слабосвязанный код (loosely coupled) — это архитектурный подход, где компоненты системы минимально зависят друг от друга. Взаимодействие происходит через интерфейсы, абстракции или события, а не через прямые ссылки или жесткие зависимости.

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

  • Легче тестировать (можно мокать зависимости)
  • Гибкость изменений (замена компонентов без переписывания кода)
  • Упрощенное масштабирование

Пример слабой связи через интерфейс:

java
interface MessageService {
    void send(String message);
}

class EmailService implements MessageService {
    @Override
    public void send(String message) {
        System.out.println("Sending email: " + message);
    }
}

class Notification {
    private MessageService service;
    
    public Notification(MessageService service) {  // Внедрение зависимости
        this.service = service;
    }
    
    void notifyUser(String msg) {
        service.send(msg);
    }
}

Здесь Notification зависит от абстракции (MessageService), а не от конкретной реализации. Можно легко заменить EmailService на SmsService без изменений в Notification.

Как достичь:

  • Использовать DI (Dependency Injection)
  • Работать с интерфейсами, а не классами
  • Применять паттерны (Наблюдатель, Фабрика и др.)
  • Избегать статических связей
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы