View Full Version : [UML] Class Diagram, aggregazione con mutua esclusione
Salve
ho un probelma, non so come modellare l'aggregazione di classi dicendo che, per ogni istanza, solo una di esse puo' essere specificata. :stordita: cioe'
ho la classe TV che aggrega Plasma, Piatto, LED .
ora, vorrei che TV possa aggregare:
- o nessuna delle tre
- o solo una di quelle. cioe' le caratteristiche di un Plasma o di uno schermo Piatto o di uno a LED.
come si specifica la mutua esclusione?
Salve
ho un probelma, non so come modellare l'aggregazione di classi dicendo che, per ogni istanza, solo una di esse puo' essere specificata. :stordita: cioe'
ho la classe TV che aggrega Plasma, Piatto, LED .
ora, vorrei che TV possa aggregare:
- o nessuna delle tre
- o solo una di quelle. cioe' le caratteristiche di un Plasma o di uno schermo Piatto o di uno a LED.
come si specifica la mutua esclusione?
Non puoi fare una classe astratta 'TV' da cui ereditano le tre sottoclassi (PLASMA, Led, ecc...)?? Mi sembra una soluzione pulita.. :)
Non puoi fare una classe astratta 'TV' da cui ereditano le tre sottoclassi (PLASMA, Led, ecc...)?? Mi sembra una soluzione pulita.. :)
mmm non ho ben capito. dici di fare 3 oggetti principali che ereditano da TV?
ma questo nn dice che TV e' composta da uno di quei 3 schermi..
mmm non ho ben capito. dici di fare 3 oggetti principali che ereditano da TV?
ma questo nn dice che TV e' composta da uno di quei 3 schermi..
Si scusa, adesso forse ho capito meglio la situazione:
http://s8.postimage.org/xio9j3cc5/Main.jpg
Mancano le molteplicità, puoi aggiungerle tu... TV e Schermo sono in relazione 1:1...
Così schermo sarà solo una delle possibili classi figlie che ereditano da essa (di fatto l'una esclude l'altra)...
se la classe non la definisco astratta funziona ugualmente?
se la classe non la definisco astratta funziona ugualmente?
Da un punto di vista logico no perchè una TV deve avere uno schermo concreto (cioè un PLASMA, LCD o altro) e non uno schermo astratto. Dichiarando schermo astratto impediamo che si possa istanziare uno 'schermo generico' e obblighiamo la classe ad avere soltanto una delle 'incarnazioni' di schermo...
Per inciso, quella classe astratta potrebbe anche essere convertita in un'interfaccia che tutte quelle classi implementano! Il concetto è sempre lo stesso: TV ha il riferimento ad un handle generico che uniforma le varie implementazioni. Non so se sono chiaro :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.