Diagramma di classe UML Tipo di relazione
Domanda
Ho due classi, ma non quale tipo di relazione dovrei usare. Ho un documento di classe con molte proprietà e nessun metodo. La seconda classe è ciò che ho chiamato DocumentFact (Fact - Factory). Questa classe contiene diversi metodi che restituiscono una raccolta di oggetti Document.
Quindi, la classe Document non sa nulla della classe DocumentFact perché non ha nulla a che fare con essa. D'altra parte, DocumentFact crea più oggetti Document. Che tipo di relazione UML è questa? Stavo pensando a qualcosa del genere:
-------------- ------------
|DocumentFact| -------> | Document |
-------------- 2.* ------------
o
-------------- ------------
|DocumentFact| ------- []| Document | // Composition
-------------- ------------
Cosa ne pensi?
Soluzione
Altri suggerimenti
Solo la mia opinione: se DocumentFact è davvero una fabbrica, spenderei i tre tasti in più e lo spiegherei. Obbliga gli utenti della tua classe a capire se intendi " document factory " o "fatto su un documento" quando leggono il nome della classe per la prima volta. L'incertezza non è necessaria, soprattutto se puoi toccare il tipo. Consiglierei di rendere il nome più autocompensante e meno ambiguo.
Sono d'accordo con il toolkit che le fabbriche- > prodotto è una relazione di istanze - il descrittore di molteplicità non si applica a meno che la fabbrica non abbia anche lo scopo di mantenere riferimenti agli oggetti del prodotto nel qual caso è un 1: * o 1: n (multitono) comunque