Sobes.tech
Senior

Mis on GRASP?

sobes.tech AI

Vastus AI-lt

GRASP (General Responsibility Assignment Software Patterns) — see on universaalne põhimõtete kogum vastutuse määramiseks klassidele ja objektidele objektorienteeritud disainis. Need aitavad luua paindlikke, hooldatavaid ja taaskasutatavaid süsteeme. Peamised GRASP-mudelid on:

  • Information Expert: Objekt, kellel on vajalik teave tegevuse täitmiseks, peaks võtma endale vastutuse selle tegevuse eest.
  • Creator: Klass, mis sisaldab või kogub teiste klasside eksemplare, on nendega tihedalt seotud või omab andmeid nende loomise jaoks, peaks võtma endale vastutuse nende loomise eest.
  • Controller: Klass, mis vastutab süsteemi sündmuse (näiteks kasutaja tegevuse) töötlemise eest, peaks koordineerima teiste objektide tööd, kuid mitte ise töö teostama.
  • Pure Fabrication: Tehislikult loodud klass, mis ei peegelda valdkonna kontseptsiooni, kuid on loodud sidususe vähendamiseks, sidususe parandamiseks või taaskasutamise tagamiseks.
  • Low Coupling: Disainiprintsiip, mille eesmärk on minimeerida sõltuvusi klasside vahel.
  • High Cohesion: Disainiprintsiip, mille eesmärk on tagada, et klassi meetodid oleksid funktsionaalselt tihedalt seotud.
  • Polymorphism: Vastutuse määramine käitumise valiku eest objekti tüübi põhjal (virtuaalsete meetodite kaudu).
  • Protected Variations: Disainiprintsiip, mis kaitseb teistest elementidest (objektidest, alamsüsteemidest, süsteemidest) tulenevate muudatuste eest, määrates stabiilse liidese.
  • Indirection: Vastutuse määramine vahendava objekti kaudu, et vältida kahe elemendi otsest seost.

GRASP-i kasutamine aitab vältida "paksud" kontrollerid ja haldurid, parandada koodi struktuuri ning hõlbustada selle arengut.