GRASP General Responsibility Assignment SP GRASP er et hjelpemiddel for å lære om OD GRASP er retningslinjer for å fordele og tildele ansvar mellom klasser GRASP fører til sunne, enkle systemer med lav teknologisk risiko
High Cohesion Metoder med en oppgave Objekter med få og enkle tilstander Klasser med høy konsentrasjon om ett ansvarsområde Applikasjonslag med konsentrasjon om ett område Bidrar til enkel API Høy grad av abstraksjon og enkel gjenbruk Bidrar til lav kobling
Low coupling Kobling vises som assosiasjoner mellom klasser Lav kobling vises som få assosiasjoner
Controller og Indirection Controller oversetter brukerimpulser til systemoperasjoner Indirection unngår direkte kobling mellom behov og tilbyder. Se JDBCtrainer java[13] Se
Creator Gir råd om hvem som kan lage instanser Er i slekt med LoD (Law of Demeter) A kan konstruere B dersom A aggregerer, inneholder eller bruker instanser av B A kan konstruere B dersom A har nødvendig informasjon for konstruksjonen av B
Law of Demeter En metode skal ha begrenset kunnskap om en objektmodell Et objekts metode kan sende meldinger til seg selv Et objekts metode kan sende meldinger til sine parametre Et objekts metode kan sende meldinger til objekter det selv instansierer
Meldinger fra et objekt Et objekt kan sende meldinger til seg selv Et objekt kan sende meldinger til sine parametre Et objekt kan sende meldinger til objekter det selv instansierer Et objekt kan sende meldinger til sine egne komponentobjekter
Praktiske følger av LoD Et objekt kan instansiere assosierte objekter i private metoder Et objekt kan sende meldinger til andre objekter i private metoder ”A public method M of Class C shold invoke only its own public and private methods, and those of its superclasses” Annen praksis øker den teknologiske risikoen
Praktisk problem og LoD Snakk bare med de nærmeste
Praktisk design med LoD La en venn ordne problemet
Generelt kart over LoD Klassen Ansvar har bare noen få nære Venn-er
Information Expert Tildeling av ansvar til den som har den relevante informasjonen Hvem tar ansvaret for å oppdage vinnermønsteret?
Praktisk bruk av Information Expert Spillebrett samler inn kunnskap fra sine ”venner” og tar ansvaret Salg samler inn kunnskap fra sine venner for å rapportere endelig pris
Layers, 3-tier GRASP Forretningssystemer er lagdelte
Layers, n-tier Systemets størrelse krever av og til flere lag Klikk for detaljerKlikk
Praktisk lagdeling Figuren viser en lagdeling av et kinosystem