Sunteți pe pagina 1din 5

Diagrame de clasă

- exemple -
Temă. Modelaţi enunţul : “O ţară are o capitală.”

Ţara va fi o clasă cu unul dintre atributele sale capitala. Această soluţie e


utilă doar dacă vrem să avem acces la numele capitalei unei ţări.

Eventual se pot completa, ulterior, alte atribute: nume, monedă, limba


etc.

Pe de altă parte, ce se întâmplă dacă vrem să adăugăm proprietăţi


conceptului de capitală, cum ar fi populaţie, suprafaţă etc.

Capitală va deveni clasă


Asocierea “are” poate fi o agregare sau compunere? Da, compunere.

Pe de altă parte, modelul de mai sus nu aminteşte, în vreun fel,


noţiunea de oraş: dacă o capitală nu mai e capitală (din diverse motive),
oraşul în sine nu dispare, ci doar statutul său de capitală.

Vom modela aşadar faptul că o capitală e un oraş cu un anumit rol.


Vom adăuga apoi o agregare multiplă între Tara şi Oras şi o restricţie
care să arate că o capitală e aleasă dintre oraşele unei tări.

Pentru că un oraş poate aparţine, în


De e e agregare şi nu compunere? cazul general, în timp, mai multor ţări.
Exemplu: Berlin
În final, dacă vrem să arătăm că o capitală e un oraş şi are proprietăţi
specifice oraşului, atunci putem face clasa Capitala ca o specializare a
clasei Oras.

Dependenţa <<refine>> indică faptul că multiplicitatea “1” din partea


clasei Tara în compunerea cu Capitala înlocuieşte mai puţin restrictiva
multiplicitate “1..*” din partea clasei Tara pentru oraşe.

Obs. Clasa Oras din figura de mai sus nu e o clasă abstractă

S-ar putea să vă placă și