modellazione del processo gestionale

1

immaginare

dati un oggetto business project e regole (semplificate):

  • il suo ciclo di vita è diviso in diversi stages of evaluation ;
  • gli stage
  • fluiscono linearmente e rappresentano una catena di valutazione;
  • ogni fase fornisce il proprio reward value / algoritmo;
  • la promozione del progetto è controllata dalla decisione di un altro utente;
  • la ricompensa risultante viene assegnata all'iniziatore del progetto.

troppo ingenuo, probabilmente)

Il primo pensiero che mi viene in mente è usare decorator pattern ; a causa della sua struttura sembra in qualche modo applicabile. Ma cosa succede se è necessario mantenere ulteriori dettagli forniti con l'attuale% decorata% di progetto?

Ho bisogno di un comportamento in più su ogni fase

Ho riscontrato un articolo su state . Credo che abbia molto in comune con jBPM . Ha sicuramente il massimo da ciò che è necessario e allo stesso tempo ha un'infrastruttura di grandi dimensioni.

ma può essere progettato senza incorporare questa complessità?

Che cosa suggeriresti?

    
posta lexeme 19.02.2014 - 08:12
fonte

1 risposta

2

Quando vedo "processo" che attraversa il tempo, di solito penso "macchina a stati". Tuttavia, uno dei tuoi requisiti dice che il processo è lineare, quindi la macchina a stati potrebbe essere eccessiva.

Sembra che tu abbia un'interfaccia comune che descrive Stage, con funzioni come reward () e un progetto di livello superiore che "ha uno" stage.

Suppongo che il progetto venga eseguito per un periodo di tempo prolungato, quindi è necessario essere in grado di salvare lo stato del progetto tra gli eventi nel progetto. Quindi Project dovrebbe essere persistente, incluso lo Stage in cui si trova.

A prima vista, vedo una classe Project, un'interfaccia Stage e implementazioni concrete di Stage. E quindi probabilmente un enum di StageId per rendere più semplice la persistenza delle fasi.

(Conoscendomi, probabilmente definirò anche le transizioni in una mappa e implementerò anche una macchina a stati veramente semplice, ma la macchina a stati semplice e lineare che hai potrebbe essere fatta solo se ... così da mantenere è leggero.)

    
risposta data 19.02.2014 - 08:31
fonte

Leggi altre domande sui tag