- exemple - Temă. Modelaţi enunţurile următoare (îndeplinite simultan) :
1) Fişierele, shortcut-urile şi directoarele sunt conţinute în
directoare şi au un nume;
2) Un shortcut implică (se refera la) un fişier sau un director;
3) Într-un anumit director, un nume poate identifica doar un
element (fişier, shortcut sau director); 1) Fişierele, shortcut-urile şi directoarele sunt conţinute în directoare şi au un nume;
Conceptele de fisier, shortcut, director trebuie modelate în clase.
Din moment ce un fişier, shortcut sau director nu poate fi inclus decât
într-un director (în alte directoare pot fi eventual copii ale acestora), iar odată cu dispariţia directorului părinte dispar şi fişierele, shortcut-urile şi (sub)directoarele conţinute în el, relaţia dintre clasele Fisier, Shortcut, Director cu clasa Director trebuie să fie compunere. 2) Un shortcut implică un fişier sau un director;
Obs. Asocierea exclusivă sau asocierea XOR este o constrângere a două
sau a mai multor asocieri şi specifică faptul că o clasă poate participa la cel mult o asociere la un moment dat. 3) Într-un anumit director, un nume poate identifica doar un element (fişier, shortcut sau director);
Asocierea calificată este folosită în relaţiile one-to-many şi many-to-many
şi indică modul în care va fi identificat un anumit element al părţii many a unei asocieri. Un calificativ este un atribut al unei clase de asociere, care trebuie să reducă multiplicitatea asocierii care a generat clasa de asociere. Un calificativ este folosit ca un index pentru a găsi obiectele de la celălalt capăt al unei asocieri. Prima viziune a modelului va arăta ca în figura de mai jos:
Obs. În această variantă, două fişiere sau shortcut-uri nu pot avea
acelaşi nume în interiorul unui director, dar un fisier si un shortcut pot avea acelaşi nume. Soluţia vine din propoziţia a 3-a: 3) Într-un anumit director, un nume poate identifica doar un element (fişier, shortcut sau director); Adăugând o supraclasă, Element, care să generalizeze clasele Fisier, Shortcut şi Director, cele 3 compuneri se pot îmbina într-una singură. În această soluţie: • Director e “composite” în relaţie cu Element • Director e subclasă a clasei Element Ce este pattern-ul “composite”? E o soluţie elegantă pentru a modela ierarhii de elemente/compuneri. Designerul poate lucra cu obiecte individuale (frunze – leaves) şi cu combinaţiile lor (composite) în acelaşi fel.