Programování
Adapter
Mezi vrstva, mezi dvěma třídama, programama.
Nekomunikujeme přímo mezi A a B. Ale přes A - komunikator - B

Příklad:
Máme klienta, který má zadat dopravcům nějaký úkol, aby něco někam převezli.
Máme DPD, která bere jen adresu a pak
Balikovnu, která bere i cenu a komu se má vydat balík, co má schovaný jako třídu
    
public class Client
{
    public void CreateOrder()
    {
        // Zde pujde slozitý if, který se nám nelíbí
    }
}

public class carrierDPD
{
    public void Create(string adresa)
    {
    
    }
}

public class carrierBalikovna
{
    public void Submit(PackpageInfo info)
    {
    }

    public class PackpageInfo()
    {
        public int price;
        public string Komu;
        public string adresa;
    }
}

    
Nyní v clientovi, bychom dělali složitý if, na to kam co kdy pujde. Hodně podmínek a podobně. Proto si vytvoříme adapter
Mezivstrtva
    
public class Order
{
    public int Id {get;set;}
    public string Street {get;set;}
    public string Price {get;set;}
}

public Interface ICarrierAdapter
{
    public void Create(Order order)
}

public class CarrierDPDAdapter : ICarrierAdapter
{
    private carrierDPD carrier = new carrierDPD();


    public void Create(Order order) 
    {
        carrier.Create(Order.Street)
    }
}
public class CarrierBalikovnaAdapter : ICarrierAdapter
{
    private carrierBalikovna carrier = new carrierBalikovna();
    public void Create(Order order) 
    {
        //....doplnit informace
        Carrier.create(new PackpageInfo())
    }
}