Domanda

Sto avendo dei problemi pensando attraverso un problema di progettazione e pensavo che la Comunità possa essere in grado di aiutarmi a indicarmi nella giusta direzione. Sto modellando un sistema di gestione dei dipendenti per la mia azienda e sono arrivato a una domanda di progettazione che mi ha stanziato.

Ecco lo scenario:

Ho una classe dei dipendenti che la classe dei dipendenti ha un elenco di oggetti per ufficio (dove il dipendente funziona e ha funzionato). Ho un requisito di creare la capacità di trasferire un dipendente tra gli uffici. Esiste un sovraccarico extra per la richiesta di trasferimento (approvazioni, revisioni) ma alla fine le approvazioni il mio oggetto di trasferimento dovrebbe far modificare l'elenco degli oggetti dell'oggetto dipendente.

Sto usando C #, EF4 e Poco per i miei oggetti. Non sono sicuro di come modellare l'oggetto di trasferimento. Sarà persisteva per qualche tempo e potrebbe non essere completato per alcuni giorni (le approvazioni devono essere completate prima di continuare a continuare). L'oggetto di trasferimento deve conoscere il dipendente a modificare e il nuovo ufficio per il dipendente. Mi sento come se fosse un brutto design per rendere il dipendente un figlio dell'oggetto di trasferimento e modificarlo lì. Mi sto solo chiedendo se qualcuno ha un consiglio su come modellare questo requisito.

È stato utile?

Soluzione

È possibile trattare il trasferimento come un oggetto completamente separato - un dipendente daRaransfer.

Come minimo, conterrebbe i seguenti dati: 1. L'identificatore univoco di un dipendente. 2. L'identificativo univoco di un trasferimento dall'ufficio. 3. L'identificativo univoco di un trasferimento all'ufficio. 4. Un indicatore di stato per il progresso del trasferimento.

Questo è un oggetto leggero che non contiene altri oggetti - li fa riferimento da un identificativo univoco.Quando il trasferimento viene elaborato, convalidare che il dipendente e il trasferimento agli uffici siano ancora validi, quindi aggiornare la collezione di offices dei dipendenti.

L'unico prerequisito per questa soluzione è che il dipendente e gli uffici devono esistere prima della creazione del trasferimento.

Altri suggerimenti

Sembra che il trasferimento non sia un oggetto, è un flusso di lavoro.Guarda la fondazione di Windows Workflow ... Ecco un buon esempio QuickStart.

Se pensi alla responsabilità dell'oggetto di trasferimento, è gestire il trasferimento di un dipendente in un altro ufficio.Designerei questo con l'oggetto di trasferimento separato sia dal dipendente che dall'ufficio, ma ha un riferimento a ciascuno.L'oggetto di trasferimento avrebbe probabilmente un enum di valori di stato di approvazione e il raggiungimento di uno stato finale (approvazione annullata o definitiva) l'oggetto di trasferimento potrebbe eseguire l'azione di associare il dipendente con il nuovo ufficio e segnato come completato.Non è un brutto design per l'oggetto trasferimento per avere riferimenti agli altri oggetti.La relazione tra trasferimento e dipendente (e anche trasferimento e ufficio) in questo caso una relazione "usa".

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top