GRASP General Responsibility Assignment SP GRASP er et
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 V. Holmstedt, School of Business, University of South-Eastern Norway
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 V. Holmstedt, School of Business, University of South-Eastern Norway
Low coupling • Kobling vises som assosiasjoner mellom klasser • Lav kobling vises som få assosiasjoner V. Holmstedt, School of Business, University of South-Eastern Norway
Controller og Indirection • Controller oversetter brukerimpulser til systemoperasjoner • Indirection unngår direkte kobling mellom behov og tilbyder. • Se JDBCtrainer java[13] • Se http: //oo. hive. no/upload/evalancheclient. jar V. Holmstedt, School of Business, University of South-Eastern Norway
Creator • Gir råd om hvem som kan lage instanser • Er i slekt med Lo. D (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 V. Holmstedt, School of Business, University of South-Eastern Norway
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 V. Holmstedt, School of Business, University of South-Eastern Norway
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 V. Holmstedt, School of Business, University of South-Eastern Norway
Praktiske følger av Lo. D • 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 V. Holmstedt, School of Business, University of South-Eastern Norway
Praktisk problem og Lo. D • Snakk bare med de nærmeste V. Holmstedt, School of Business, University of South-Eastern Norway
Praktisk design med Lo. D • La en venn ordne problemet V. Holmstedt, School of Business, University of South-Eastern Norway
Generelt kart over Lo. D • Klassen Ansvar har bare noen få nære Venn-er V. Holmstedt, School of Business, University of South-Eastern Norway
Information Expert • Tildeling av ansvar til den som har den relevante informasjonen • Hvem tar ansvaret for å oppdage vinnermønsteret? V. Holmstedt, School of Business, University of South-Eastern Norway
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 V. Holmstedt, School of Business, University of South-Eastern Norway
Layers, 3 -tier • GRASP Forretningssystemer er lagdelte V. Holmstedt, School of Business, University of South-Eastern Norway
Layers, n-tier • Systemets størrelse krever av og til flere lag • Klikk for detaljer V. Holmstedt, School of Business, University of South-Eastern Norway
Praktisk lagdeling • Figuren viser en lagdeling av et kinosystem V. Holmstedt, School of Business, University of South-Eastern Norway
- Slides: 16