Встречается на собеседованиях • сегодня
Когда требуется подмена одного класса другим
Подмена класса (или его реализации) требуется в нескольких случаях:
- Тестирование - подмена реальных зависимостей mock/stub объектами:
java
// Вместо реального сервиса используем mock для тестов
@Mock
PaymentService paymentService;- Смена реализации без изменения кода клиента через интерфейсы:
java
interface Storage {
void save(String data);
}
// Можно подменить DiskStorage на CloudStorage
Storage storage = new CloudStorage();
text
3. **Адаптация интерфейсов** через паттерн Адаптер:
```java
class LegacyServiceAdapter implements NewService {
private LegacyService legacy;
// Адаптируем методы legacy под новый интерфейс
}- Декораторы для добавления функциональности:
java
DataSource ds = new LoggingDataSource(new BasicDataSource());Ключевые принципы: работа через абстракции (интерфейсы), соблюдение LSP (подтипы должны быть заменяемы), инверсия зависимостей.

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