Proxy, dekoratőr, adapter és híd minták

1. Bemutatkozás

Ebben a cikkben a Java szerkezeti tervezési mintáira fogunk összpontosítani - és megvitatjuk, hogy mik ezek, és néhány alapvető különbség van közöttük.

2. Szerkezeti tervezési minták

A Gang Of Four (GoF) szerint a tervezési minták három típusba sorolhatók:

  1. Kreatív
  2. Szerkezeti
  3. Viselkedés

Egyszerűen fogalmazva, a Strukturális minták foglalkoznak az osztályok és az objektumok összetételével. Különböző módszereket kínálnak az objektum-összetétel és az öröklés felhasználására absztrakció létrehozására.

3. Proxy minta

Ezzel a mintával létrehozunk egy közvetítőt, amely interfészként működik egy másik erőforráshoz, például egy fájl, egy kapcsolat. Ez a másodlagos hozzáférés helyettesítőt nyújt a valós komponens számára, és megvédi az alapul szolgáló bonyolultságtól.

A minta részletes példájáért olvassa el a dedikált bejegyzést: A Java proxy mintája.

A differenciálás legfontosabb pontjai:

  • A proxy ugyanazt az interfészt biztosítja, mint az objektum, amelyre hivatkozást tart, és semmilyen módon nem módosítja az adatokat; ellentétben áll az Adapter és a Decorator mintákkal, amelyek megváltoztatják és díszítik a már létező példányok funkcióit
  • A Proxy általában a fordítás idején rendelkezik információkkal a valós alanyról, míg a Dekorátor és az Adapter futás közben kerül befecskendezésre, csak a tényleges objektum felületét ismerve

4. Dekoratőr minta

Ez a minta hasznos az objektum viselkedésének javításához. Részletes áttekintésért tekintse meg a fókuszált oktatóanyagot itt: Dekoratőr minta Java-ban

A differenciálás főbb pontjai:

  • Bár a Proxy és a Decorator minták hasonló szerkezetűek, szándékukban különböznek egymástól; míg a Proxy elsődleges célja a könnyű használat vagy az ellenőrzött hozzáférés megkönnyítése, a Díszítő további felelősséggel tartozik
  • A Proxy és az Adapter minták hivatkozást tartalmaznak az eredeti objektumra
  • Ebből a mintából az összes dekorátor rekurzívan, végtelen sokszor használható, ami más modellekkel nem lehetséges

5. Adapterminta

Az Adapter mintát két nem kompatibilis interfész csatlakoztatására használják, amelyeket egyébként nem lehet közvetlenül csatlakoztatni. Az Adapter egy meglévő osztályt új interfésszel burkol, így kompatibilis lesz a szükséges felülettel.

A részletes leírást és a megvalósítást a külön bejegyzésben olvashatja el: Adapterminta Java-ban

Az Adapter és a Proxy minták közötti fő különbségek a következők:

  • Míg a proxy ugyanazt az interfészt biztosítja, az Adapter egy másik felületet kínál, amely kompatibilis az ügyfelével
  • Az adaptermintát az alkalmazáskomponensek megtervezése után használják, hogy a forráskód módosítása nélkül is felhasználhassuk őket. Ez ellentétben áll a Bridge mintával, amelyet az alkatrészek megtervezése előtt használnak.

6. Hídminta

A Bridge mintát arra használják, hogy elválasszák az absztrakciót a megvalósítástól hogy a kettő egymástól függetlenül változhasson.

Ez azt jelenti, hogy olyan híd interfészt kell létrehozni, amely az OOP elveit felhasználva különíti el a felelősségeket absztrakt osztályokra.

Részletes leírást és megvalósítást a Hídminta Java-ban című külön bejegyzésben talál

A differenciálás legfontosabb pontjai:

  • A Bridge minta csak az alkalmazás megtervezése előtt valósítható meg.
  • Lehetővé teszi az absztrakció és a megvalósítás önálló változását, míg az Adapter minta lehetővé teszi az inkompatibilis osztályok együttműködését

7. Következtetés

Ebben a cikkben a Strukturális Tervezési Mintára és egyes típusai közötti különbségekre összpontosítottunk.

Mint mindig, ennek az oktatóanyagnak a teljes megvalósítása megtalálható a Github oldalon.


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