Acasă Finanțe personale Făcând generalizări în UML 2

Făcând generalizări în UML 2

Video: Rank Fight 2 - Ethology of Shepherd Dogs 03. - ранжирование борьба 2025

Video: Rank Fight 2 - Ethology of Shepherd Dogs 03. - ранжирование борьба 2025
Anonim

Este normal să clasificăm obiectele în categorii și să organizăm categorii în subcategorii. Dacă căutați un loc de trăit, veți găsi categorisirea unei locuințe ca o casă, un apartament, o casă, un condominiu, un conac și așa mai departe. Casele pot, la rândul lor, să fie organizate în continuare prin stiluri cum ar fi ranch, split-level, colonial, and saltbox. UML vă oferă notația de a captura aceste tipuri de clasificări - cunoscute și sub numele de generalizare și specializare - și le puteți folosi ca modeler și programator.

Unii dezvoltatori orientați spre obiecte vor merge la mari durate pentru a salva o mică lucrare. Atunci când pot modela ceva o dată și reutilizează, sunt interesați. Dacă pot scrie o metodă (codul de program pentru o operațiune) pentru o clasă o singură dată și o pot folosi de mai multe ori, atunci le înscrieți pentru o productivitate mai mare. Dacă doriți să economisiți timp prin specificarea atributelor și a operațiilor o dată și apoi reutilizarea lor de mai multe ori, citiți mai departe.

Pe măsură ce definiți clase, este posibil să observați că unele clase au aceleași atribute sau aceleași operații. În acest caz, plasați aceste caracteristici comune (atribute, operații și așa mai departe) într-o clasă mai generică numită superclama . Clasele care împărtășesc caracteristicile comune sunt cunoscute ca subclasele ale superclasei. De exemplu, lungimea materialului înregistrat pe o casetă video, o bandă audio, un compact disc sau un film de film este un atribut al tuturor celor patru tipuri de discuri înregistrate. Aceste clase pot împărtăși și alte atribute, cum ar fi dimensiunile lor fizice și data pe care fiecare dintre acestea a fost utilizată pentru a face o înregistrare. În acest caz, superclasa ar fi RecordedMedia, subclasele ar fi Videotape, Audiotape, CompactDisc și MovieFilm, iar unele atribute partajate ar putea include Lungime înregistrată și TotalLength.

Acest proces de identificare a atributelor sau a operațiilor similare între clase este cunoscut ca generalizarea . De exemplu, generalizați atributul recordLength într-o clasă mai generică numită RecordedMedia. Procesul de afișare a unei generalizări în UML este simplu:

1. Identificați subclasele.

Localizați clasele care au aceleași atribute și / sau operații. Aceste clase sunt subclasele tale.

2. Creați o superclasă.

Oferiți o superclasă pentru a ține atributele și / sau operațiile comune ale subclaselor. Dă superclasei un nume care clasifică toate subclasele. Plasarea superclasei deasupra subclaselor din diagramă facilitează citirea, dar nu este necesară.)

3. Adăugați funcții comune superclasei.

Înlăturați atributele și operațiile comune din subclasele și plasați-le (o singură dată) în superclaj.

4. Desenați o relație de generalizare.

Desenați o linie de generalizare din fiecare subclasă în superclaj. În UML, linia de generalizare este reprezentată ca o linie solidă cu un cap de săgeată gol la capătul superclasei. În UML, o linie cu vârful săgeții goale care conectează o subclasă la o superclasă este cunoscută ca o relație de generalizare.

După ce creați o superclasă cu caracteristici comune, cum ar fi atributele și operațiile, subclasele moștenesc acele caracteristici din superclaj. În acest fel trebuie doar să scrieți caracteristicile comune o dată în superclaj, în loc de multe ori în fiecare din subclasele.

Puteți afla dacă aveți o generalizare prin căutarea limbii pe care dvs. (sau alții) o folosiți pentru a descrie relația dintre clase. Rețineți că în descrierea mediilor înregistrate și a diverselor sale tipuri, cum ar fi casetele video de mai sus în această secțiune, a apărut expresia "patru tipuri de înregistrări media". Dacă vă aflați folosind expresii precum "genul" sau "tipul", atunci sunt șanse să aveți o generalizare pe mâini.

Spune că unul dintre clienții tăi este preocupat de urmărirea materialelor dintr-o arhivă. Acest client a acumulat diferite tipuri de tipuri de medii înregistrate, cum ar fi casete video și casete audio. Ca modele, trebuie să surprindeți diferențele dintre aceste medii, precum și asemănările lor. Diagrama din Figura 1 prezintă începuturile mai multor generalizări, aranjate într-o ierarhizare a moștenirii .

Figura 1: Ierarhie simplă de moștenire.

Dezvoltatorii folosesc termenul generalizare sau moștenire pentru a se referi la același concept de reutilizare a atributelor și operațiilor partajate pe care le afișați într-o superclasă și reutilizarea în subclase. Generalizarea se referă la conceptul generalizării de la specific (subclasele) la cele generice (superclase). Moștenirea se referă la efectul generalizării asupra subclaselor.

Când vedeți o relație generalizare între clase, semnificația sa este foarte diferită de cea a unei relații între clase. O asociere este în cele din urmă o relație între multe obiecte - unele instanțe ale unei clase au o relație (legătură) cu instanțele celeilalte clase. Într-o relație de generalizare între clase , relația este cu adevărat despre clase. Cel mai bine puteți spune este că un obiect creat dintr-o subclasă conține toate caracteristicile subclaselor și ale superclasei.

Aveți un obiect dintr-o clasă într-o relație de generalizare. Chiar dacă arătați două clase, subclasa și superclajul, aveți doar un obiect care se creează. Vă puteți gândi că un obiect al clasei Videotape este, de asemenea, un obiect al clasei RecordedMedia din cauza moștenirii. Figura 2 prezintă un obiect creat din clasa Videotape cu toate atributele sale.(Exemplul unei clase este reprezentat ca un simbol obiect.) Nu aveți două obiecte diferite (unul pentru RecordedMedia și unul pentru Videotape), doar un obiect. Când a fost creat obiectul vtu83-1023, au fost setate toate valorile atributelor sale. Înregistrarea pe bandă este de 57 de minute. Lungimea totală a benzii fizice este de 60 de minute. Banda este o casetă video Umatic cu o înălțime de 10 centimetri, o lățime de 7 centimetri și o adâncime de 1,5 centimetri. Înregistrarea este analogică și un jurnal al conținutului benzii este atașat la banda pentru ca arhivatul să se refere.

Figura 2: O instanță care prezintă toate atributele moștenite.

Aveți doar o instanță definită de o subclasă și de superclajul acesteia. Subclasa și superclajul pot avea o operație constructor (pentru a crea instanța) și o operațiune destructor (pentru a distruge instanța). Când software-ul dvs. rulează și creați o instanță a unei subclase, constructorul superclasei este executat mai întâi, urmat de constructorul din subclasă. Când vine momentul să eliminați instanța pe care ați creat-o, distrugătorul subclasei este numit mai întâi, urmat de distrugătorul superclasei. Dacă lucrurile sunt mai complexe deoarece aveți subclase de subclase, amintiți-vă: Constructorii sunt invocați din partea de sus a ierarhiei de moștenire în partea de jos; destructorii sunt chemați în ordine de la cea mai mică subclasă până la cea mai înaltă superclazie.

Făcând generalizări în UML 2

Alegerea editorilor

Cum să configurați o listă de articole de salarizare în QuickBooks 2012 - dummies

Cum să configurați o listă de articole de salarizare în QuickBooks 2012 - dummies

ÎN QuickBooks 2012 identifică elementele care apar pe stuburile de control al salarizării angajaților. Dacă utilizați un birou extern de salarizare pentru a vă ocupa de salarizare - și aceasta nu este o idee proastă - nici măcar nu trebuie să vă faceți griji cu privire la lista de posturi de salarizare. Dacă utilizați serviciul QuickBooks Enhanced Payroll, ...

Cum să configurați o listă de salarii QuickBooks 2010 - manechine

Cum să configurați o listă de salarii QuickBooks 2010 - manechine

Lista de salarii în QuickBooks 2010 identifică elementele care apar pe stub-urile de verificare a salariilor angajaților. QuickBooks oferă atât opțiunea EZ Set Up, ghidată de Element de salarizare, cât și o abordare Custom Set Up. În QuickBooks, alegeți Liste → Listă salarizare listă. QuickBooks afișează fereastra Listei articolelor de salarizare. Pentru a adăuga un nou articol de salarizare, faceți clic pe Salarizare ...

Cum să configurați o listă de articole de salarizare în QuickBooks 2013 - manechine

Cum să configurați o listă de articole de salarizare în QuickBooks 2013 - manechine

ÎN QuickBooks 2013 identifică elementele care apar pe stub-urile de verificare a salariilor angajaților. Dacă utilizați un birou de salarizare extern pentru a vă ocupa de salarizare - și aceasta nu este o idee proastă - nici măcar nu trebuie să vă faceți griji cu privire la lista de salarizare. Dacă utilizați serviciul QuickBooks Enhanced Payroll, ...

Alegerea editorilor

Adobe CS5 Dreamweaver HTML - notițe

Adobe CS5 Dreamweaver HTML - notițe

Crearea unei pagini web în Adobe Creative Suite 5 (Adobe CS5) sarcină simplă. Înțelegerea codului HTML pe care îl creează necesită o mică explicație. Pagina web poate fi la fel de complexă sau simplă pe cât doriți și ambele tipuri sunt la fel de eficiente dacă sunt create corespunzător. Dreamweaver funcționează în fundal pentru a vă asigura că ...

Adobe CS5 Dreamweaver Link Checking - dummies

Adobe CS5 Dreamweaver Link Checking - dummies

Un avantaj cheie al site-ului Dreamweaver Adobe Creative Suite 5 (Adobe CS5) abilitatea acestuia de a vedea relații între diferite pagini și fișiere și de a detecta orice link-uri rupte sau imagini lipsă înainte de a publica site-ul dvs. web pentru vizualizare publică. Alegeți site-ul → Verificați legăturile Sitewide pentru a vă combina întregul site pentru a găsi link-uri întrerupte sau ...

7 Moduri de a conduce traficul către site-ul dvs. Dreamweaver - dummies

7 Moduri de a conduce traficul către site-ul dvs. Dreamweaver - dummies

Ce se întâmplă dacă construiți un site Web Dreamweaver și nimeni nu vine? Din păcate, această problemă este prea obișnuită. Conducerea unor cantități mari de trafic către paginile unui site necesită adesea o investiție de timp, un produs sau un mesaj convingător, bani, o lovitură vială sau un noroc prost. Scor mare în motoarele de căutare Optimizarea motorului de căutare, sau ...

Alegerea editorilor

HDR Fotografiere: Cum să tonul hartă în Photoshop - dummies

HDR Fotografiere: Cum să tonul hartă în Photoshop - dummies

Este mult mai raționalizată decât într-o aplicație ca Photomatix Pro, în esență pentru că aveți atât de puține opțiuni. Principala dvs. decizie este să alegeți una dintre cele patru metode de cartografiere a tonurilor, dintre care două nu au setări. Pentru a tonifica harta unei imagini HDR în Photoshop, urmați ...

Fotografia pentru fotografii interioare - pentru fotografii interioare

Fotografia pentru fotografii interioare - pentru fotografii interioare

Fotografierea dinamică ridicată este perfect potrivită pentru spațiile interioare - . Această imagine HDR ilustrează sanctuarul unei biserici mari luminate cu candelabre în cameră, câteva locuri pe scenă și lumină ambientală care vine de la ferestre. Acesta este un exemplu excelent al expunerii compromise. ...