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

Как используешь на практике принцип открытости/закрытости

Принцип открытости/закрытости (OCP) означает, что классы должны быть открыты для расширения, но закрыты для модификации. На практике применяю через:

  1. Абстракции и интерфейсы:
java
interface PaymentProcessor {
    void processPayment(double amount);
}

class CreditCardProcessor implements PaymentProcessor {
    public void processPayment(double amount) { /*...*/ }
}

class PayPalProcessor implements PaymentProcessor {
public void processPayment(double amount) { /.../ }
}

text

2. Шаблон Стратегия для изменения поведения без изменения кода:
```java
class PaymentService {
    private PaymentProcessor processor;
    
    public PaymentService(PaymentProcessor processor) {
        this.processor = processor;
    }
    
    public void makePayment(double amount) {
        processor.processPayment(amount);
    }
}
  1. Использую наследование для расширения функциональности, а не для изменения существующей.

Такой подход позволяет добавлять новые платежные системы, не изменяя существующий код PaymentService.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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