Proxy, dekorator, adapter i uzorci mostova

1. Uvod

U ovom ćemo se članku usredotočiti na uzorke strukturnog dizajna u Javi - i raspraviti što su to i neke temeljne razlike među nekima od njih.

2. Uzorci strukturnog dizajna

Prema Gang Of Four (GoF), dizajnerski uzorci mogu se klasificirati u tri vrste:

  1. Kreativni
  2. Strukturne
  3. Bihevioralni

Jednostavno rečeno, strukturni uzorci bave se sastavom klasa i objekata. Pružaju različite načine korištenja sastava i nasljeđivanja objekata za stvaranje neke apstrakcije.

3. Proxy obrazac

Uz ovaj obrazac, stvaramo posrednika koji djeluje kao sučelje za drugi resurs, npr. datoteka, veza. Ovaj sekundarni pristup pruža surogat stvarnoj komponenti i štiti je od temeljne složenosti.

Za detaljan primjer uzorka pogledajte posvećeni post: Proxy obrazac u Javi.

Ključne točke diferencijacije:

  • Proxy pruža isto sučelje kao i objekt na koji drži referencu i ne mijenja podatke na bilo koji način; to je za razliku od uzoraka adaptera i dekoratera koji mijenjaju i ukrašavaju funkcionalnosti već postojećih primjeraka
  • Proxy obično ima informacije o stvarnom subjektu u vrijeme samog sastavljanja, dok se Decorator i Adapter ubrizgavaju u vrijeme izvođenja, znajući samo stvarno sučelje objekta

4. Uzorak dekoratora

Ovaj obrazac koristan je za poboljšanje ponašanja objekta. Za detaljan pregled pogledajte fokusirani vodič ovdje: Uzorak dekoratora na Javi

Ključne točke diferencijacije:

  • Iako uzorci proxyja i dekoratora imaju slične strukture, oni se razlikuju u namjeri; dok je Proxyjeva glavna svrha olakšati jednostavnost upotrebe ili kontrolirani pristup, Dekorator pridodaje dodatne odgovornosti
  • I uzorci proxyja i adaptera sadrže referencu na izvorni objekt
  • Svi dekoratori s ovog uzorka mogu se rekurzivno koristiti, neograničen broj puta, što kod ostalih modela nije moguće

5. Uzorak adaptera

Uzorak adaptera koristi se za povezivanje dva nekompatibilna sučelja koja se inače ne mogu izravno povezati. Adapter omotava postojeću klasu novim sučeljem tako da postaje kompatibilan s potrebnim sučeljem.

Za detaljan opis i provedbu pogledajte posvećeni članak: Uzorak adaptera u Javi

Glavne razlike između uzoraka adaptera i proxyja su:

  • Iako proxy pruža isto sučelje, Adapter pruža drugačije sučelje koje je kompatibilno s klijentom
  • Uzorak adaptera koristi se nakon što su komponente aplikacije dizajnirane tako da ih možemo koristiti bez izmjene izvornog koda. To je za razliku od uzorka Bridge, koji se koristi prije dizajniranja komponenata.

6. Uzorak mosta

Uzorak Mosta koristi se za odvajanje apstrakcije od njezine provedbe tako da se to dvoje mogu neovisno razlikovati.

To znači stvoriti most sučelje koje koristi OOP principe za razdvajanje odgovornosti u različite apstraktne klase.

Za detaljan opis i provedbu pogledajte posvećeni post: Uzorak mosta u Javi

Ključne točke diferencijacije:

  • Uzorak mosta može se implementirati samo prije dizajniranja aplikacije.
  • Omogućuje neovisno mijenjanje apstrakcije i implementacije, dok obrazac adaptera omogućava nespojivim klasama da rade zajedno

7. Zaključak

U ovom smo se članku usredotočili na obrazac strukturnog dizajna i razlike između nekih njegovih vrsta.

Kao i uvijek, cjelovitu implementaciju ovog vodiča možete pronaći na Githubu.


$config[zx-auto] not found$config[zx-overlay] not found