ID nel diagramma delle classi

0

Per quanto ne so, non aggiungiamo un attributo come id alle classi nel diagramma delle classi. giusto?

Ma quando creiamo un database, o quando vogliamo chiamare un'istanza, abbiamo bisogno del suo id , quindi perché non abbiamo questo attributo nei nostri diagrammi?

    
posta Salman Lashkarara 15.11.2015 - 09:22
fonte

2 risposte

3

Non hai l'ID nel tuo diagramma di classe perché non è effettivamente rilevante per la tua classe stessa. Sarà rilevante per il tuo database, quindi sarà presente in un diagramma del database . Avere una diversa strategia di archiviazione (ad esempio, un file XML per ordine) significa che non si avrà una chiave primaria perché una chiave primaria è un artefatto del meccanismo di persistenza.

    
risposta data 15.11.2015 - 11:17
fonte
1

Il significato di un diagramma di classe dipende dal livello di astrazione a cui stai modellando.

Ad esempio, puoi creare un diagramma di classe del mondo reale . In tal caso, la classe 'Squalo' ovviamente non ha un 'id', perché gli squali non hanno id in natura. Potrebbe avere attributo 'lunghezza' e operazione 'eatFish'.

Ma forse stai creando un diagramma di classe per definire lo schema di un database relazionale contenente una tabella Shark, in cui ogni squalo ha un ID univoco. In tal caso, devi mostrare 'id' come attributo della classe 'Squalo'. Forse vuoi modellare le sue stored procedure come operazioni della classe.

Tra questi due estremi, potresti voler modellare su un livello intermedio di astrazione. Ad esempio, potresti creare un modello di dati concettuali per un gioco di squalo, ovvero un modello di dati che definisce il modo in cui l'utente percepisce i dati dell'applicazione. In tal caso, se l'applicazione espone gli ID all'utente, è necessario modellarlo come attributo di classe Shark. Ma se l'applicazione usa id solo internamente, allora non lo fai.

Un ultimo esempio: potresti voler modellare il tuo codice sorgente , scritto in un linguaggio orientato agli oggetti. In tal caso, se 'id' è un membro della classe 'Shark' nel codice sorgente, allora 'id' è un attributo nel tuo diagramma e altrimenti non lo è.

Per riassumere, se si crea un diagramma di classe, è necessario definire a quale livello di astrazione si sta modellando e cosa intendi con il concetto di "classe". Questo ti fornirà indicazioni su quali attributi dovrebbe avere.

    
risposta data 15.11.2015 - 21:05
fonte

Leggi altre domande sui tag