Szoftverfejlesztés során előbb-utóbb rájövünk, hogy a programozásban adódó problémák többsége ismétlődő, amelyek pár kategóriába sorolhatóak. Ezekre a problémákra előbb-utóbb rutinnal megoldásokat tudunk adni magunktól is, azonban hatalmas segítség, ha ezeket a tervezési mintákat nem magunktól kell újra feltalálnunk.
A tervezési minták használatának számos előnye van. Ezek bejáratott módszerek, tehát ha ezeket felhasználjuk a szoftverünk fejlesztése során, akkor drámaian lecsökken annak az esélye, hogy valamit elrontsunk és mindemellett még gyorsabb is lesz a szoftver fejlesztése, mert nem megy el az idő a kerék újra és újra feltalálásával. Arról nem is beszélve, hogy a kód olvashatóbb és újra felhasználható lesz.
Definíció szerint a tervezési minták „egymással együttműködő objektumok és osztályok leírásai, amelyek testre szabott formában valamilyen általános tervezési problémát oldanak meg egy bizonyos összefüggésben” 1
A mintákat több kategóriára lehet osztani. A főbb kategóriák:
-
Viselkedési minták (Behavioural Patterns)
A viselkedési minták az osztályok közötti kommunikáció problémájának megoldása köré csoportosulnak.
-
Létrehozási minták (Creational Patterns)
Vannak esetek, amikor az objektumok közvetlen létrehozása nagyon bonyolulttá tenné a kódot. Ezen tervezési minták ennek a problémának az áthidalására kínálnak módokat.
-
Szerkezeti minták (Structual patterns)
A szerkezeti minták olyan tervezési minták, amelyek megkönnyítik a tervezést az osztályok közötti kapcsolatok egyszerű azonosításával, felderítésével.
A tervezési minták témaköre szorosan nem kapcsolódik a C# programozáshoz, azonban ha tisztában vagyunk velük, akkor talán könnyebb megértenünk a keretrendszer bizonyos osztályait, illetve egypár mintát nyelv függetlenül minden programozónak illik ismernie.
Mivel igen sok minta létezik, ezért mindet nem fogom tudni bemutatni a könyvben, de ez nem is cél. Azonban az itt szereplő mintákat érdemes megjegyezni. További információért a tervezési mintákkal kapcsolatban ajánlom a https://refactoring.guru/design-patterns oldalt, ahol konkrét pédákon keresztül ismerhetőek meg a leggyakrabban használt minták.
A könyvben az alábbi mintákról lesz szó:
- Singleton
- Factory Method
- Fluent builder
- Chain of Responsibility
- Command
- Strategy
- Template
- Façade
- Composition over inheritance
-
Erich Gamma, Richard Helm, Ralph Johnson, John Vilissdes – Design Patterns könyv definíciója↩