Diagrammi delle classi: le classi aggregate / composte si vedono automaticamente?

1

Diciamo che nel gioco, un giocatore ha un animale domestico:

Player < > ------ Pet

Ovviamente il giocatore può accedere ai campi e ai metodi di Pet, ma presumo che Pet non sappia del giocatore? Ho bisogno che Pet possa accedere anche al giocatore, come dovrei modellarlo?

    
posta John V 02.11.2013 - 12:48
fonte

1 risposta

1

In UML, una relazione di aggregazione ha una direzionalità, che può essere

  • unidirezionale, dove Player conosce il Pet , ma non il contrario. Questo di solito è indicato con una freccia alla fine della riga:

    Player < > ------ > Pet

  • bidirezionale, in cui sia Player che Pet possono accedere l'un l'altro. Questo di solito è indicato dall'assenza di una freccia (come hai usato nella domanda):

    Giocatore < > ------- Animale domestico

Nella maggior parte dei linguaggi di programmazione, non esiste un vero equivalente della relazione bidirezionale, quindi viene solitamente emulato utilizzando due relazioni unidirezionali (puntatori / riferimenti) e un po 'di logica per garantire che se si seguono entrambi i collegamenti, finire di nuovo nello stesso oggetto.

    
risposta data 02.11.2013 - 13:03
fonte

Leggi altre domande sui tag