4. fejezet - Tervezési minták

Tartalom

A tervezési minták leírása
GoF tervezési minták katalógusa
Tervezési minták rendszerezése és kapcsolataik
Hogyan válasszunk tervezési mintát?
Hogyan használjuk a tervezési mintákat?
Tervezési minták alkalmazása a gyakorlatban
Létrehozási minták
Szerkezeti minták
Viselkedési minták

Ebben a fejezetben néhány tervezési minta bemutatására kerül sor. Ahogyan már a bevezetőben megjegyeztük, a minták követése és alkalmazása segíthet a jobb programozóvá válásban. A szoftverfejlesztési életciklus minden elemét átszövik a minták, beszélhetünk elemzési, architekturális, tervezési, implementációs, de még tesztelési mintákról is. Ezen minták különféle absztrakciós szinten segítik az azt alkalmazó munkáját, azonban közös bennük, hogy valamilyen jól meghatározott cél érdekében jöttek létre, és javasolnak megoldást a felmerülő problémákra.

A tervezési minták olyan középszintű minták, amelyek a szoftver részletes tervezése során kerülnek alkalmazásra. Szemben az implementációs mintákkal, nem kötődnek egyetlen programozási nyelvhez sem, annál magasabb absztrakciós szinten tesznek javaslatot az objektumok létrehozása, szerkezetének kialakítása, és az objektumok közötti kommunikáció kialakítása során felmerülő változatos problémákra.

A tervezési minták leírása

[GOF1994, GOF2004] a tervezési minták leírására az alábbi szerkezetet javasolja, ezáltal egységessé téve az egyes tervezési minták leírását:

4.1. táblázat - Tervezési minták leírására szolgáló sablon elemei

Minta attribútumaLeírás
A minta neve és besorolásaA minta neve a minta lényegét közvetíti rövid formában. A jó név létfontosságú, mivel a tervezési szókincs részévé válik. A minta besorolását a későbbiekben tárgyalandó három alapvető kategória valamelyikébe végezzük.
CélRövid leírás, amely a következő kérdésekkel foglalkozik: Mit csinál az adott tervezési minta? Mi az értelme és a célja? Milyen sajátos tervezési problémára ad választ?
Egyéb nevekA minta más, jól ismert nevei, ha vannak ilyenek, illetve a minta angol neve.
FeladatForgatókönyv, amely bemutatja a tervezési problémát és azt, hogy az osztályok és az objektumok hogyan oldják azt meg. A forgatókönyv segít a minta következő, elvontabb leírásának megértésében.
AlkalmazhatóságMelyek azok a helyzetek, ahol az adott tervezési minta alkalmazható? Melyek azok a rossz tervek, amelyek leváltását a minta megcélozza? Hogyan ismerhetők fel ezek?
SzerkezetA minta osztályainak grafikus szemléltetése.
RésztvevőkAz osztályok, illetve objektumok, amelyek részt vesznek a tervezési mintákban, valamint azok feladatai.
EgyüttműködésHogyan működnek együtt az objektumok, hogy végrehajtsák feladataikat?
KövetkezményekHogyan támogatja az adott minta a kívánt célokat? Mik a minta használatának előnyei és hátrányai? A rendszer mely szerkezeti elemeit változtathatjuk szabadon az adott mintát használva?
MegvalósításMilyen buktatókra kell ügyelni, milyen módszereket érdemes használni a minta megvalósításakor? Vannak nyelvi sajátosságok?
PéldakódProgramkód-töredékek, amelyek illusztrálják, hogyan valósítható meg a minta valamely objektumorientált programozási nyelven.
Ismert felhasználásokValós rendszerekből vett példák a mintára. Legalább két példát szerepeltetünk, különböző területekről.
Kapcsolódó mintákMely tervezési minták kapcsolódnak szorosan az adott mintához? Mik a legfontosabb különbségek? Milyen más mintákkal együtt célszerű használni az adott mintát?