Come posso usare UML per modellare una relazione tra due classi, in cui una ha esposto le sue funzioni come amico all'altro?

0

Ho due classi:

  ------------                         ---------------
     X                                       Y
  ------------                         ---------------
                      relation
  ------------    ------------------   ---------------
      A()                                   C()
      B()                             
      D()
      E()
  ------------                         ---------------

Voglio ereditare solo queste due funzioni dalla classe X, dove sono definite con il modificatore di accesso amico. La mia classe sarà:

 ---------------
      Y                                       
 ---------------

 ---------------
    C()
    A()
    D()
 ---------------

La classe Y utilizza alcune funzioni della classe X, vale a dire A e D. Come posso modellare questa relazione in un diagramma di classe UML?

    
posta gveaf 27.11.2012 - 15:03
fonte

1 risposta

1

Se i metodi di X sono metodi di istanza, puoi utilizzare la relazione di associazione , che è una linea continua tra le due classi, tuttavia questo potrebbe indicare al lettore del modello che la relazione è bidirezionale. Se un'istanza di Y mantiene un riferimento a X in esso e X non mantiene alcun tipo di riferimento a 'Y', puoi aggiungere la freccia aperta all'estremità che punta verso X per aggiungere la direzionalità. Se Y non può esistere senza X , puoi anche considerare l'utilizzo di aggregazione per indicare questo.

Se i metodi di X sono statici, considera la relazione di dipendenza , rappresentata da un punto tratteggiato linea e freccia aperta da Y a X . Questa relazione viene utilizzata Y chiama i metodi statici di X o se le funzioni di Y prendono X come parametro ma un riferimento a X non viene mantenuto all'interno di un'istanza di Y .

Nel tuo caso specifico, quando stai provando a modellare la relazione friend in C ++, le informazioni che posso trovare (come questa domanda su Stack Overflow ) sembra suggerire di annotare i membri di X con < > stereotipo. Da questo punto, utilizzerei la relazione di associazione o dipendenza discussa sopra, in base a come Y accede a X , con associazione se Y mantiene un'istanza di X e dipendenza se Y riceve istanze di X come parametri per le funzioni necessarie.

    
risposta data 27.11.2012 - 15:09
fonte

Leggi altre domande sui tag