Come indicare che una classe potrebbe implementare un'interfaccia?

0

Dire che ho un utente di classe e un amministratore di interfaccia. Alcuni utenti sono amministratori e possono quindi implementare l'interfaccia. Molti non lo sono, quindi è falso dire che "User implements Administrator".

Come posso rappresentarlo in un diagramma di classe? Devo usare la classica freccia di implementazione o esiste uno stereotipo esistente per una classe che può implementare un'interfaccia?

    
posta Timothy Daniel 25.09.2013 - 15:46
fonte

2 risposte

5

Quello che vuoi è un Decoratore .

Un amministratore sarebbe una sottoclasse di Utente e il suo attributo membro principale sarebbe un oggetto Utente.

Quindi, un Amministratore degli Studenti sarebbe un Amministratore contenente uno Studente (che è una sottoclasse di Utente, giusto? Gli attributi specifici dell'amministratore sono impostati nella classe Adminstrator, con i metodi Utente passati dall'oggetto Utente.

    
risposta data 25.09.2013 - 16:40
fonte
9

Non ha senso dire che una classe può implementare un'interfaccia. O lo fa o no, e questo è determinato dal momento che il codice è scritto. Istanze specifiche (utenti) non possono prendere questa decisione autonomamente, anche se possono invece impostare un flag IsAdministrator .

Se il flag IsAdministrator non è sufficiente, quindi (come ha detto @superM) il design desiderato è sottoclasse . Un User ha alcune proprietà. Alcuni User sono in realtà Administrator , che ha proprietà aggiuntive. Pertanto Administrator eredita da User e dovrebbe essere rappresentato come tale.

    
risposta data 25.09.2013 - 15:57
fonte

Leggi altre domande sui tag