Prekladá rozhranie jednej triedy na rozhranie, ktoré klient očakáva.
// Cudzí kód. Prepísať ho nemôžeme — beží v produkcii roky.class StaraBrana { odosliPlatbuXml(xml) { return '<odpoved><stav>OK</stav></odpoved>'; }} // Rozhranie, ktoré klient vie použiť.class Platba { zaplat(suma) { throw new Error('abstraktná metóda'); }} class BranaAdapter extends Platba { constructor(brana) { super(); this.brana = brana; } zaplat(suma) { const xml = '<platba><suma>' + suma + '</suma></platba>'; const odpoved = this.brana.odosliPlatbuXml(xml); return { stav: odpoved.includes('<stav>OK</stav>') ? 'ok' : 'chyba' }; }} const platba = new BranaAdapter(new StaraBrana());platba.zaplat(25); // { stav: 'ok' }