Gyakorlott programozok, programtervezok milyen design pattern-oket hasznalnak munkajuk soran a legtobbszor?
Ha nem jönne más válasz, talán ez a leírás segít.
Koszonom a linket, eppen Gamma es szerzotarsai Design Patterns c. konyvet olvasom, kivancsi lettem volna, melyik mintakra fektessem a hangsulyt.
"A leggyakoribb talán a modell - nézet - vezérlő, az összes grafikus programot ezen a elven építik fel."
Az már architekturális pattern. Kicsit magasabb szintű dolog.
Egyébként meg bizonyos patternek esetén erősen nyelv-függő a dolog. Pl. C#-ban az életben nem fogsz observer pattern-t írni, mert ott vannak az event-ek.
Ahogy én a saját munkám során tapasztaltam -használtam már sokféle framework-ot, és részt vettem már framework készítésben is- , a leggyakoribbak a következők:
factory-jellegű patternek(abstract factory, factory method), strategy, decorator, command, proxy, composite, decorator.
Singletonnak sok értelmét nem látom, legtöbb programnyelvben ezt kiváltják a static class-ok.
Figyi, nem is kell betéve megtanulni őket, hogy pontosan milyen class-okat és interface-eket kell írni mondjuk egy memento-hoz. A design pattern-ek nem szentírás. Inkább csak ötletadónak nevezném; ha találkozol valami problémával, akkor nem kell újrafeltalálnod a melegvizet, hanem van már rá egy kész megoldás, de nem kell - sőt, néha káros - ragaszkodni egy az egyben a referenciához.
Úgyhogy én azt javasolnám, hogy az általam felsoroltakat nézd át tüzetesebben, de ne úgy, hogy bevágod, hogy milyen class-okat kell írni, hanem:
1. értsd meg magát a problémát, aminek a megoldására azt az adott pattern-t kitalálták
2. értsd meg, hogyan oldja meg a problémát a pattern
Szóval a leggyakoribb pattern-ek:
abstract factory, factory method, strategy, decorator, command, proxy, composite, és az előző felsorolásomból kimaradt még a facade és a template method.
Ami nem annyira nagyon gyakori, de jó ismerni:
memento, visitor, observer. (Bár ha olyan programnyelven programozol, ahol nincs konkrétan event nyelvi szinten, akkor az observert átrakhatod a gyakran használtak közé.)
Amit én még az életben nem láttam használni sehol:
flyweight, bridge, adapter. Az iterator-t ugyanide sorolnám, bár ugyanaz a helyzet, mint az observer-el: Ha nincs rá a nyelvben támogatás, akkor gyakran kell használni, de ha már az adott nyelvhez tartozó alap lib. tartalmazza, akkor soha nem fogod megírni a nulláról kezdve.
@6:
Szervusz, nem ugy gondoltam, hogy "bemagolom" a mintakat, mert nem egyetemre jarok mar, hogy "felkerdezzek" a lecket, kezdo programozo vagyok, aki igyekszik elkerulni a "ganyolast", ezert tajekozodok. A Gamma es tarsai konyveben van kb. 30 minta, ido kell, mire mindet reszletesen megertem, kiprobalom, felismerem. Ha lehet, azokkal kezdem, amelyek masok szerint gyakrabban elofordulhatnak.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!