Hjem Personlig finansiering Gør generaliseringer i UML 2 - dummies

Gør generaliseringer i UML 2 - dummies

Video: Hvad er epilepsi? 2024

Video: Hvad er epilepsi? 2024
Anonim

Det er naturligt at klassificere objekter i kategorier og til at organisere kategorier i underkategorier. Hvis du leder efter et sted at bo, finder du dig selv at kategorisere en bolig som hus, lejlighed, byhus, ejerlejlighed, palæ og så videre. Huse kan i sin tur organiseres yderligere af stilarter som ranch, split-level, koloniale og saltbox. UML giver dig besked om at indfange disse typer klassifikationer - også kendt som generalisering og specialisering - og gøre brug af dem som modeller og programmerer.

Nogle objektorienterede udviklere vil gå langt for at spare lidt arbejde. Når de kan modellere noget en gang og genbruge det, er de interesserede. Hvis de kan skrive en metode (programkoden til en operation) kun for en klasse en gang og bruge den mange gange, så tilmelde dem til højere produktivitet. Hvis du vil spare dig selv tid ved at angive attributter og operationer en gang og derefter genbruge dem mange gange, læs videre.

Når du definerer klasser, kan du bemærke, at nogle klasser har de samme attributter eller de samme operationer. Når dette er tilfældet placerer du disse fælles funktioner (attributter, operationer osv.) I en mere generisk klasse kaldet superklasse. Klasserne, der deler de fælles funktioner, kaldes underklasser af superklassen. For eksempel er længden af ​​det optagede materiale på et videobånd, et lydbånd, en cd eller en filmfil en egenskab af alle fire typer optaget materiale. Disse klasser kan også dele andre attributter, såsom deres fysiske dimensioner og datoen hver enkelt blev brugt til at lave en optagelse. I dette tilfælde ville superclassen være OptagetMedia, subklasserne ville være Videobånd, Audiotape, CompactDisc og MovieFilm, og nogle delte attributter kunne indeholde recordedLength og totalLength.

Denne proces med at finde lignende attributter eller operationer på tværs af klasser er kendt som generalisering. For eksempel generaliserer du attributten recordLength til en mere generisk klasse kaldet RecordedMedia. Processen til at vise en generalisering i UML er enkel:

1. Identificer underklasserne.

Find klasser, der har de samme attributter og / eller operationer. Disse klasser er dine underklasser.

2. Opret en superklasse.

Giv en superklasse til at holde de fælles attributter og / eller operationer i underklasserne. Giv superklassen et navn, der kategoriserer alle underklasserne. Placering af superklassen over underklasserne i diagrammet gør det lettere at læse, men er ikke påkrævet.)

3. Tilføj fælles funktioner til superklassen.

Fjern de fælles attributter og operationer fra underklasserne og læg dem (en gang) i superklassen.

4. Tegn et generaliseringsforhold.

Du tegner en generaliseringslinje fra hver underklasse til superklassen. I UML er generaliseringslinjen repræsenteret som en solid linje med en hul pilhoved i superklasseenden. I UML er en linje med den hule pilhoved, der forbinder en underklasse til en superklasse, kendt som et generaliseringsforhold.

Når du har oprettet en superklasse med de fælles funktioner som attributter og operationer, er underklassen arve disse funktioner fra superklassen. På den måde må du kun skrive de fælles funktioner en gang i superklassen i stedet for mange gange i hver af underklasserne.

Du kan se om du har en generalisering ved at se på det sprog, du (eller andre) bruger til at beskrive forholdet mellem klasser. Bemærk, at udtrykket "fire slags optagede medier" fremkom ved at beskrive optaget medie og dets forskellige typer som videobånd tidligere i dette afsnit. Hvis du finder dig selv ved at bruge sætninger som "slags" eller "type", så er chancerne for en generalisering på dine hænder.

Sig, at en af ​​dine kunder er bekymret for at holde styr på materialer i et arkiv. Denne klient har akkumuleret forskellige slags optagede medier som videobånd og lydbøger. Som modeller skal du fange forskellene mellem disse medier og deres ligheder. Diagrammet i figur 1 viser begyndelsen af ​​flere generaliseringer, der er arrangeret i et arvshierarki.

Figur 1: Enkelt arvshierarki.

Udviklere bruger udtrykket generalisering eller arv til at henvise til det samme koncept om genbrug af delte attributter og operationer, som du viser i en superklasse og genbruges i underklasser. Generalisering refererer til begrebet generalisering fra specifikationer (underklasserne) til den generiske (superklassen). Arv henviser til virkningen af ​​generalisering på underklasserne.

Når du ser et generalisering forhold mellem klasser, er dets betydning meget forskellig fra forholdet mellem en forening forholdet mellem klasser. En forening er i sidste ende et forhold mellem mange objekter - nogle tilfælde af en klasse har et forhold (link) med forekomster af den anden klasse. I et generaliseringsforhold blandt klasser handler forholdet virkelig om klasserne. Det bedste du kan sige er, at et objekt lavet af en underklasse indeholder alle funktionerne i underklassen og superklassen.

Du har kun ét objekt fra en klasse i et generaliseringsforhold. Selvom du viser to klasser, underklassen og superklassen, har du kun ét objekt, der bliver skabt. Du kan tænke på en genstand for videobåndklassen også at være en genstand for RecordedMedia-klassen på grund af arv. Figur 2 viser et objekt, der er oprettet fra Videobånd-klassen med alle dets attributter.(Eksemplet på en klasse er repræsenteret som et objektsymbol.) Du har ikke to forskellige objekter (en til RecordedMedia og en til Videobånd), kun en genstand. Når objektet vtu83-1023 blev oprettet, blev alle dets attributters værdier sat. Optagelsen på båndet er 57 minutter. Den totale længde af det fysiske bånd er 60 minutter. Båndet er en umatisk videokassette med en højde på 10 inches, en bredde på 7 inches og en dybde på 1, 5 inches. Optagelsen er analog, og en logbog af tapeindhold er fastgjort til båndet for arkivisten til reference.

Figur 2: En instans, der viser alle arvede attributter.

Du har kun en instans defineret af en underklasse og dens superklasse. Underklassen og superklassen kan have en konstruktøroperation (for at oprette forekomsten) og en destructoroperation (for at ødelægge forekomsten). Når din software kører, og du opretter en forekomst af en underklasse, udføres superklassens konstruktør først efterfulgt af konstruktøren af ​​underklassen. Når det kommer tid til at eliminere forekomsten, du har oprettet, kaldes destruktoren af ​​underklassen først, efterfulgt af superklassens destructor. Hvis tingene er mere komplekse, fordi du har underklasser af underklasser, skal du bare huske: Konstruktører påberåbes fra toppen af ​​arvshierarkiet til bunden; Destruktorer kaldes i rækkefølge fra den laveste underklasse til den højeste superklasse.

Gør generaliseringer i UML 2 - dummies

Valg af editor

Sådan indtastes aftaler i Outlook 2013 Kalender - dummies

Sådan indtastes aftaler i Outlook 2013 Kalender - dummies

Aftaler du har sat op til arbejde i Outlook 2013 Kalender kræver ofte, at du indeholder lidt mere information, end du ville have brug for til dine personlige aftaler. Når du vil give en aftale den fulde behandling, skal du bruge følgende metode:

Hvordan man indtaster kalenderaftaler fra Outlook. com - dummies

Hvordan man indtaster kalenderaftaler fra Outlook. com - dummies

De aftaler og møder, du sender i Outlook, er knyttet til Outlook. com, så fra enhver web-aktiveret enhed kan du se, hvor du skal være og med hvem. Nu ved du, hvornår du er tilgængelig til møder, frokoster og tilfældige tungevæsker. Hvis du vil have dine Outlook 2013-data og din Outlook. com data til synkronisering automatisk, ...

Sådan flagger du en kontakt i Outlook 2013 - dummies

Sådan flagger du en kontakt i Outlook 2013 - dummies

Nogle gange har du brug for Outlook 2013 for at minde dig om vigtig datoer eller opfølgningsaktiviteter. Du kan f.eks. Bruge flag, for at minde dig om at ringe til nogen næste uge. Den bedste måde at hjælpe dig med at huske på er at markere personens navn i listen Kontaktpersoner. En påmindelse vil dukke op i din kalender. Kontakterne er ikke ...

Valg af editor

LinkedIn Group Kategorier - dummies

LinkedIn Group Kategorier - dummies

Fordi der er mange grunde til at oprette en gruppe, giver LinkedIn dig muligheder for at kategorisere din gruppe for at give dig mest eksponering. LinkedIn har etableret følgende seks hovedkategorier af grupper: Alumni: Disse grupper er alumniforeninger skabt af skoler eller lærerinstitutioner som et middel til at holde kontakten med fortiden ...

LinkedIn: Sådan oprettes en eksportfil til eksportkontakter - dummier

LinkedIn: Sådan oprettes en eksportfil til eksportkontakter - dummier

Der kommer nok en tid du har brug for dine LinkedIn kontakter for at hjælpe dig på andre arenaer, hvis du vil lykkes i din jobsøgning. For det første skal du generere din eksporterede fil af kontakter fra LinkedIn. Det gør du ved at følge disse trin:

LinkedIn For Dummies Cheat Sheet - dummies

LinkedIn For Dummies Cheat Sheet - dummies

Tilmelding til LinkedIn betyder, at du er en del af det største online faglige netværk i verden. Se her for nyttige retningslinjer for brug af LinkedIn, især når du søger job. LinkedIn hjælper dig med at oprette og vedligeholde en online profil, du kan bruge til at opbygge et professionelt netværk.

Valg af editor

Windows Phone 7 Application Development For Dummies Cheat Sheet - dummies

Windows Phone 7 Application Development For Dummies Cheat Sheet - dummies

Hvis du har en god Ny ide til en app, der vil køre på Windows Phone 7, start med at downloade de gratis Windows Phone Developer Tools fra Microsofts websted. Processen tager et kig på, hvad du har på din pc, før det begynder at downloade - hvis du allerede har en bedre version ...

Hvorfor udvikle til Android? - dummies

Hvorfor udvikle til Android? - dummies

Det virkelige spørgsmål er, "Hvorfor ikke udvikle til Android? "Hvis du vil have din app tilgængelig for millioner af brugere over hele verden, eller hvis du vil offentliggøre apps, så snart du er færdig med at skrive og teste dem, eller hvis du kan lide at udvikle på en åben platform, har du dit svar. Men hvis du er ...

Arbejder med objektgrafer i storyboarding - dummies

Arbejder med objektgrafer i storyboarding - dummies

Du kan bruge storyboarding til at starte din iOS-applikationsudvikling i Xcode4. Når du opretter dit storyboard, opretter du en objektgraf, der derefter arkiveres, når du gemmer filen. Når du indlæser filen, er objektgrafen unarchived. Så hvad er en objekgraf? Her er det korte svar: Objektorienterede programmer er lavet ...