Modellazione del modello di disegno composito

2

Sto usando Java Eclipse EMF per modellare il mio pattern composito. Quale sarebbe la rappresentazione UML giusta per modellare una nuova classe (Root) che implementa una directory radice univoca. Questo è il pattern Composite originale.

Questaèlamiarappresentazione:

La rappresentazione di destinazione sarebbe:

root
  |___ dir1
  |___ dir2
  |___ dir3
  |      |___ fileA
  |      |___ dir4
  |             |__ fileB
  |    
  |___ file1
    
posta cowgirl 04.01.2017 - 08:53
fonte

2 risposte

2

I tuoi diagrammi sono sbagliati.

Innanzitutto, add , remove e getChild NON DEVE essere su Component . Questo è abbastanza ovvio dall'immagine sulla wiki . Soprattutto nel tuo caso, in cui tutte queste operazioni non hanno senso per File .

Il secondo problema è il metodo operation . Il composito significa che se chiami l'operazione su Composite , la delega ai suoi figli. E quando il client di Component lo sta usando, non gli importa se sta usando solo foglia singola, composita o complessa di compositi e foglie.

    
risposta data 04.01.2017 - 10:04
fonte
1

Il tuo diagramma corrente indica che FileSystem utilizza un singolo file (senza alcuna directory) o una struttura di directory.

Capisco che il requisito reale è che un FileSystem sia sempre costituito da un albero di directory di almeno una directory (root) e il contenuto di tale directory radice, che possono essere sottodirectory.
Questo può essere meglio modellato avendo una freccia di composizione da FileSystem a Directory .

Il fatto che FileSystem si colleghi direttamente a Directory non significa né implica in alcun modo che le altre classi nel modello composito non possano essere utilizzate da FileSystem . La freccia indica solo che la root è una directory.

    
risposta data 04.01.2017 - 09:30
fonte

Leggi altre domande sui tag