Perché un oggetto "Ordine" dovrebbe avere una proprietà "Stato"?

3

Vedo sempre le classi di ordini standard implementate con una proprietà "Status", ma non mi sento a mio agio con questo. Lo stato non è una proprietà del processo di adempimento invece dell'ordine stesso? Che dire degli ordini che possono essere soggetti a diversi processi di adempimento?

    
posta user3013752 27.01.2014 - 20:25
fonte

3 risposte

5

Isn't the status a property of the fulfillment process instead of the order itself?

Lo è. Lo Status non dovrebbe appartenere a un Ordine, né le tasse o altri dettagli finanziari. Quando si modella il concetto di ordine, dovrebbe essere modellato in base a ciò che è (definizione del dominio) e NON in base a come viene visualizzato o utilizzato da altri processi di dominio.

Un cliente non ordina stati, sconti o tasse. Ordina prodotti / servizi e allega codici coupon o coupon. E questo è tutto ciò che un Ordine dovrebbe contenere. I dettagli finanziari e il monitoraggio degli ordini completi sono casi d'uso del concetto NON parti del concetto.

Ciò che un cliente o un impiegato del negozio vede è un modello di vista che contiene più del documento Ordine. Contiene dati di inventario o dati di fatturazione o dati di spedizione. Quindi lo Status è in realtà un concetto del processo di evasione degli ordini (saga) che può essere organizzato in altri processi (prenotazioni dei prodotti, fatturazione, spedizione) ciascuno con i loro stati molto personali.

OP, hai ragione: lo stato non ha posto nella definizione dell'Ordine. È semplicemente la via più semplice per definire un modello improprio che mescola diversi sottodomini.

    
risposta data 04.02.2014 - 22:47
fonte
2

Isn't the status a property of the fulfillment process?

No, è lo stato di un ordine, a meno che non si intenda associare un processo di evasione dell'ordine all'ordine. Normalmente, non è così che funziona; pensare a un processo di adempimento come una "fabbrica" che elabora gli ordini. Una proprietà su tale processo potrebbe apparire come "quanti ordini sono attualmente nella coda di spedizione?"

Il tuo cliente non ha intenzione di cercare un processo di adempimento quando vuole sapere qual è lo stato del suo ordine; sta andando a cercare il suo ordine. Come programmatore, vorrai mantenere questo stato nel record Ordine (o in una tabella OrderStatus), non in un processo di adempimento (sebbene l'elenco degli stati possibili possa essere influenzato da quel processo).

    
risposta data 27.01.2014 - 20:29
fonte
2

Isn't the status a property of the fulfillment process instead of the order itself?

Non necessariamente. Il processo di adempimento può avere uno stato contributivo per l'Ordine, ma è possibile che ci siano più processi di adempimento. Lo stato finale deve rimanere con l'ordine.

What about orders that can be subject to different fulfillment processes?

Esattamente. Hai fornito l'esempio del contatore che mostra perché lo stato dovrebbe appartenere all'ordine. Pensa a come monitorare un ordine che è stato soddisfatto attraverso due processi separati. Il lavoro sull'ordine potrebbe essere completato in un percorso di evasione, ma nemmeno avviato all'interno di un altro.

    
risposta data 27.01.2014 - 20:31
fonte

Leggi altre domande sui tag