Sobes.tech
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.