Senior
Šta je GRASP?
sobes.tech АИ
Одговор од АИ
GRASP (Opšti obrasci za dodelu odgovornosti softverskim komponentama) je skup univerzalnih principa za dodelu odgovornosti klasama i objektima u objektno-orijentisanom dizajnu. Oni pomažu u kreiranju fleksibilnih, održivih i ponovo upotrebljivih sistema. Glavni obrasci GRASP uključuju:
- Stručnjak za informacije: Objekat koji poseduje informacije potrebne za izvršenje akcije treba da preuzme odgovornost za tu akciju.
- Kreator: Klasa koja sadrži ili agregira instance drugih klasa, usko je povezana sa njima ili ima podatke za inicijalizaciju za njihovo kreiranje, treba da preuzme odgovornost za njihovo kreiranje.
- Kontrolor: Klasa odgovorna za obradu sistemskog događaja (npr. akcije korisnika), treba da koordinira rad drugih objekata, ali ne i da obavlja sam posao.
- Čista Fabrika: Veštački kreirana klasa koja ne odražava koncept domena, ali je kreirana da smanji povezanost, poboljša koheziju ili olakša ponovnu upotrebu.
- Niska povezanost: Princip dizajna usmeren na minimiziranje zavisnosti između klasa.
- Visoka kohezivnost: Princip dizajna koji teži tome da su metode klase usko povezane po funkcionalnosti.
- Polimorfizam: Dodeljivanje odgovornosti za izbor ponašanja na osnovu tipa objekta (kroz virtuelne metode).
- Zaštićene varijacije: Princip dizajna koji štiti od promena drugih elemenata (objekata, podsistema, sistema) definisanjem stabilnog interfejsa.
- Indirekcija: Dodeljivanje odgovornosti posredničkom objektu da bi se izbegla direktna veza između dva elementa.
Primena GRASP pomaže u izbegavanju "debelih" kontrolera i menadžera, poboljšava strukturu koda i olakšava njegov razvoj.