Back to questions
Junior — Middle
70
Можете объяснить принцип работы и назначение паттерна Адаптер (Adapter) в программировании?
Answer from AI
sobes.tech AI
Паттерн Адаптер (Adapter) используется для того, чтобы "адаптировать" интерфейс одного класса к интерфейсу, который ожидает клиент. Это позволяет использовать несовместимые по интерфейсу классы вместе.
Например, если у вас есть класс с одним интерфейсом, а вы хотите использовать класс с другим интерфейсом, то создаёте адаптер, который реализует нужный интерфейс и внутри вызывает методы адаптируемого класса.
Пример на C#:
// Интерфейс, который ожидает клиент
interface ITarget
{
void Request();
}
// Класс с несовместимым интерфейсом
class Adaptee
{
public void SpecificRequest() {
Console.WriteLine("Вызов специфического запроса");
}
}
// Адаптер, который делает Adaptee совместимым с ITarget
class Adapter : ITarget
{
private Adaptee _adaptee = new Adaptee();
public void Request() {
_adaptee.SpecificRequest();
}
}
Таким образом, клиент может работать с объектом через интерфейс ITarget, не заботясь о том, что внутри используется класс с другим интерфейсом.