Hol jelenik meg a Single Responsibility Principle Robert C Martin "Túlélőkönyv programozóknak" című könyvében?
Úgy érzem nem értetted meg teljesen a SOLID lényegét. Ez az 5 elv egymástól is függ valamilyen szinten. Az SRP annyit takar, hogy minden egyes osztályodnak és függvényednek egy és csak egy felelőssége lehet. Nehéz megmondani, hogy pontosan hol lehet ezt megtalálni, de szinte minden jó példában benne kell legyen.
A legkönnyebb talán úgy megjegyezni, hogy felteszed a kérdést magadban. Mit csinál ez a függvény? Letölt egy gyűjteményt ÉS kiválogatja a megadott minta szerint az illeszkedő elemeket ÉS betölti a felületre VAGY ha üres az gyűjtemény, akkor megjelenít egy üzenetet a felhasználónak.
Ez nem jó, mert sok benne az ÉS és a VAGY kapcsolat. Szét kell válogatni külön függvényekbe. Lesz egy fv-ed, ami letölt valamit és vissza is adja azt. Lesz 1 fv-ed ami vár egy mintát és egy gyűjteményt és visszaadja a gyűtjeményben a mintára illeszkedő adatokat. És lesz egy függvényed ami vár egy gyűjteményt és betölti a felületre. És egy függvény a hierarchia csúcsán, ami meghívja ezeket a kis fv-eket és átadja a függőségeket.
Végeredményben azt mondanád, hogy hé, ez ugyan az ami volt, csak 1 fv-el több lett. Minek ez? Nos, azért jó, mert így a többi elvet is alkalmazni tudod erre. Minden függvénynek egy darab felelősége van, amit ő megcsinál és kész. De az, hogy bővíthetővé is tedd a kódod (Open-Closed Principle), sokkal egyszerűbb ha külön fv-eket teszel bővíthetővé és nem egy nagy katyvaszt, amit 1 nap múlva nem látsz át. És így tovább.
Tehát a SOLID olyan elveket mutat be, amik akkor működnek igazán hatékonyan, ha mindet használod. Ebből az okból kifolyólag nem is nagyon lehetne konkrét választ adni a kérdésedre.
Az már más kérdés, hogy mindig jó-e a SOLID. Vannak esetek, amikor egy elv pont elrontaná az egész kód egyszerűsítésének folyamatát, és emiatt több elv is fennakad a rostán.
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!