Встречается на собеседованиях • сегодня
Приведи пример шаблона проектирования Adapter
Шаблон Adapter позволяет объектам с несовместимыми интерфейсами работать вместе. Он оборачивает один интерфейс в другой, делая их совместимыми.
Пример:
java
// Целевой интерфейс (ожидаемый клиентом)
interface MediaPlayer {
void play(String audioType, String fileName);
}
// Адаптируемый класс (несовместимый интерфейс)
class AdvancedMediaPlayer {
void playVlc(String fileName) {
System.out.println("Playing vlc file: " + fileName);
}
void playMp4(String fileName) {
System.out.println("Playing mp4 file: " + fileName);
}
}
// Адаптер
class MediaAdapter implements MediaPlayer {
private AdvancedMediaPlayer advancedPlayer;
text
public MediaAdapter(String audioType) {
if(audioType.equalsIgnoreCase("vlc")) {
advancedPlayer = new AdvancedMediaPlayer();
}
}
@Override
public void play(String audioType, String fileName) {
if(audioType.equalsIgnoreCase("vlc")) {
advancedPlayer.playVlc(fileName);
}
}}
// Клиентский код
class AudioPlayer implements MediaPlayer {
private MediaAdapter mediaAdapter;
text
@Override
public void play(String audioType, String fileName) {
if(audioType.equalsIgnoreCase("mp3")) {
System.out.println("Playing mp3 file: " + fileName);
} else if(audioType.equalsIgnoreCase("vlc")) {
mediaAdapter = new MediaAdapter(audioType);
mediaAdapter.play(audioType, fileName);
}
}}
text

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