Паттерн Adapter — это структурный паттерн проектирования, который позволяет двум несовместимым интерфейсам работать вместе. Он работает как мост, создавая промежуточный компонент, который транслирует вызовы методов между разными интерфейсами, не трогая исходный код.
Реализация адаптера следует такому подходу:
Представь, что нужно интегрировать старую систему платежей с современным обработчиком:
// Существующий несовместимый интерфейс
public interface ILegacyPaymentProcessor
{
void ProcessPayment(double amount);
}
// Целевой интерфейс
public interface IModernPaymentGateway
{
void ExecuteTransaction(decimal amount);
}
// Класс адаптера
public class PaymentAdapter : IModernPaymentGateway
{
private readonly ILegacyPaymentProcessor _legacyProcessor;
public PaymentAdapter(ILegacyPaymentProcessor processor)
{
_legacyProcessor = processor;
}
public void ExecuteTransaction(decimal amount)
{
_legacyProcessor.ProcessPayment((double)amount);
}
}
Такой подход позволяет современной системе использовать старый обработчик без изменений кода, делая интеграцию чистой и удобной в поддержке.
Паттерн Adapter реализует целевой интерфейс, инкапсулируя экземпляр несовместимого интерфейса, чтобы транслировать вызовы методов между ними.
Новый — ещё не проверен сообществом
Вы