Adaptér - UML diagram
Adaptér - UML diagram

Návrhový vzor adapter (Wrapper) slouží pro definici jiného (stabilního) rozhraní, než daná třída poskytuje.

Příkladem z reálného života je adaptér do zásuvek. Pojedete-li do jiné země, tak tam velmi pravděpodobně narazíte na zásuvky, které mají jiný tvar a jiné napětí. Z tohoto důvodu je zapotřebí vložit mezi zařízení a zásuvku adaptér, který zajistí jak vhodné napětí, tak samotnou možnost zapojení (kvůli tvaru zásuvky).

Obdobně funguje návrhový adaptér. Máme nějakou třídu, jejíž rozhraní je z nějakého důvodu nevyhovující. Proto vytvoříme třídu adaptér, implementující požadované rozhraní, která bude dané volání překládat a volat adaptovanou třídu. Druhým častým důvodem použití adaptéru je nestabilita rozhraní adaptované třídy, například když tuto adaptovanou třídu (modul) vyvíjí jiná společnost. Potom je vhodné vytvořit adaptér, který se při změně rozhraní jednoduše upraví (v opačném případě by bylo nutné přepisovat všechna použití dané nestabilní třídy).


Příklad

Mějme v naší aplikaci z historických důvodů třídu, která počítá obsah obdélníku v imperiálních jednotkách. Protože soustava SI obsahuje metrické jednotky, tak chceme tuto třídu adaptovat tak, aby počítala obsah v metrických jednotkách. Použijeme vzor adapter.

Kód

01./**
02. * Demostrace vzoru adapter
03. * @author Pavel Micka
04. */
05.public class AdapterDemonstration {
06.    public static void main(String[] args){
07.        RequiredInterface metric = new MetricAreaMeter();
08.        System.out.println(metric.metricArea(2, 2));
09.    }
10.}
11./**
12. * Pozadovane rozhrani
13. * @author Pavel Micka
14. */
15.interface RequiredInterface{
16.    /**
17.     * Spocita velikost plochy obdelniku v metrickych jednotkach
18.     * @param lengthA velikost strany A v centimetrech
19.     * @param lengthB velikost strany B v centimetrech
20.     * @return plocha obdelniku v ctverecnich centimetrech
21.     */
22.    public double metricArea(double lengthA, double lengthB);
23.}
24./**
25. * Adaptovane rozhrani
26. * @author Pavel Micka
27. */
28.interface AdapteeInterface{
29.    /**
30.     * Spocita velikost plochy obdelniku v imperialnich jednotkach
31.     * @param lengthA velikost strany A v palcich
32.     * @param lengthB velikost strany B v palcich
33.     * @return plocha obdelniku v ctverecnich palcich
34.     */
35.    public double imperalArea(double lengthA, double lengthB);
36.}
37./**
38. * Adapter
39. * @author Pavel Micka
40. */
41.class MetricAreaMeter implements RequiredInterface{
42.    private AdapteeInterface adaptee;
43.    public MetricAreaMeter() {
44.        this.adaptee = new ImperialAreaMeter();
45.    }
46. 
47.    public double metricArea(double lengthA, double lengthB) {
48.        return adaptee.imperalArea(lengthA / 2.54, lengthB / 2.54)*2.54*2.54;
49.    }
50.}
51./**
52. * Adaptovana trida
53. * @author Pavel Micka
54. */
55.class ImperialAreaMeter implements AdapteeInterface{
56.    public double imperalArea(double lengthA, double lengthB) {
57.        return lengthA*lengthB;
58.    }
59.}

SEO od společnosti Digital Pylon


Online casino s algoritmem

České casino online online slot-vegas.cz

Hrajte nejlepší hry jako je GoodGame Empire.





Zajímavé články: Jak najít práci snů? Zvolte kariéru v IT!, Češi mají rádi hrací automaty online, Jak funguje algoritmické obchodování Casino, Online výuka Algoritmus a online marketing mají svá pravidla, Automaty, Matematický vliv, Ratings, Jak fungují algoritmy hazardních her online: více znalostí, více peněz, SYPWAI - nástroj pro vědecký vývoj, Vynikají na globálním trhu: Nejlepší vývojáři softwaru pro online výherní automaty, Jak si vybrat nejlepší české online casino, Proč byste měli hrát online casino VPN revoluce, Kde najdeme algoritmy v každodenním životě?, Čeká vás pracovní pohovor mimo město? Podívejte se, jak dokonale zvládnout včasný příchod, 5 úžasných technologií ze světa hazardních her, Mirror and access to Mostbet, Svou kancelář můžete mít stále po ruce, Jaké výhody má digitalizovaná firma oproti off-line konkurenci?, Jaký systém vybrat pro snadné řízení výroby?, Nahradí umělá inteligence ajťáky?, Důvody, proč používat SnapTik ke stahování videí TikTok, Dokonalý den na pláži: Co si vzít s sebou, aby byl výlet zábavný a bezpečný?, Jak přežít dlouhý let?, Go pay GoodGame Empire, Blockchain, Rozhovor, Umělá inteligence, Ochranná známka pre softvér: Prečo ju registrovať?, Role kryptografických algoritmů v zabezpečení online kasin, Jaké jsou náklady na nákup 3D tiskárny?, Jak algoritmy vylepšují online zážitky v roce 2025,