Sobes.tech
Back to questions
Junior — Middle
60

В каких ситуациях рекомендуется применять интерфейсы в разработке?

Companies where asked
СБЕРСБЕР

Answer from AI

sobes.tech AI

Интерфейсы в Java рекомендуется применять в следующих ситуациях:

  • Для определения контракта, который должны реализовать разные классы, обеспечивая полиморфизм.
  • Когда нужно отделить объявление поведения от его реализации, чтобы можно было менять реализации без изменения кода, использующего интерфейс.
  • Для упрощения тестирования, позволяя подменять реальные реализации на моки или стабы.
  • При проектировании архитектуры с использованием принципов SOLID, особенно принципа разделения интерфейса (ISP) и инверсии зависимостей (DIP).
  • Для реализации событийных моделей, коллбеков и других паттернов, где важна абстракция.

Пример:

public interface PaymentProcessor {
    void processPayment(double amount);
}

public class PaypalProcessor implements PaymentProcessor {
    public void processPayment(double amount) {
        // реализация через PayPal
    }
}

public class OrderService {
    private PaymentProcessor paymentProcessor;

    public OrderService(PaymentProcessor paymentProcessor) {
        this.paymentProcessor = paymentProcessor;
    }

    public void checkout(double amount) {
        paymentProcessor.processPayment(amount);
    }
}