Puoi indicarmi un'implementazione di un modello di strategia non banale? [chiuso]

4

Siamo di fronte all'implementazione di un flusso di lavoro di registrazione con molti rami. Ci sono tre flussi principali che in alcune condizioni portano l'uno all'altro. Ogni flusso ha almeno quattro diversi passaggi; alcuni passaggi interagiscono con il server e ogni passaggio aggiunge più informazioni allo stato. Inoltre, il requisito è di mantenerlo tra una sessione e l'altra, quindi se l'utente chiude l'app (questa è un'app mobile), ripristinerà il processo dall'ultimo passaggio completato con lo stato della sessione precedente.

Penso che questo potrebbe trarre beneficio dall'uso del modello strategico, ma non ho mai dovuto implementarlo per un caso così complesso. Qualcuno sa di esempi in open source o articoli dai quali potrei trovare ispirazione? Preferibilmente gli esempi dovrebbero provenire da un'applicazione live / funzionante / stabile.

Sono interessato principalmente all'implementazione di Java; stiamo sviluppando per i telefoni cellulari Java: android, blackberry e J2ME. Abbiamo un SDK che è abbastanza ben separato dalle implementazioni specifiche della piattaforma, ma gli esempi in C ++, C #, Objective-C o Python sarebbero accettabili.

    
posta Eugen Martynov 24.01.2012 - 08:01
fonte

3 risposte

3

Dovresti dare un'occhiata a JHotDraw . Il suo unico scopo è dimostrare l'utilizzo dei modelli nella vita reale.

jhotdraw.org è dove si trova:

a Java GUI framework for technical and structured Graphics. It has been developed as a "design exercise" but is already quite powerful. Its design relies heavily on some well-known design patterns. JHotDraw's original authors have been Erich Gamma and Thomas Eggenschwiler...

JavaWorld published an introductionary article "Become a programming Picasso with JHotDraw". The accompanying example application JModeller - a simple UML editor built using JHotDraw - shows some of the described design patterns and demonstrates how to use and extend existing classes...

Besides the documentation which is included in the download package more information about the internal architecture of JHotDraw and guidance for using the JHotDraw can be found here:

  • A description of the design patterns used in JHotDraw in the form of a pattern language by Douglas Kirk. Especially, the pattern index in form of a clickable pattern map shows the relation of different patterns.
  • A case study about an older version of JHotDraw can be found in the dissertation of Dirk Riehle...
    
risposta data 24.03.2012 - 17:41
fonte
2

Poiché già segnalato da Kevin Junhan , questo problema è in realtà una questione sull'implementazione di un flusso di lavoro.

Il modello di strategia non è realmente applicabile, lo scopo è più quello di rendere il codice generico scambiando piccole porzioni di logica contenute in "Strategie", non nell'orchestrare un processo più ampio.

Per Java ci sono molte opzioni relative al flusso di lavoro, di cui ne conosco due liberi e open source:

  1. jBpm
  2. Activiti

Un buon motore di workflow aiuta a mantenere processi a lungo termine (come quando un utente esce dalla loro sessione) e orchestra azioni tra più sistemi (attendi l'input dell'utente qui, chiama il servizio web qui, ecc.). Fatto bene, i tuoi processi saranno anche più facili da adattare in futuro e verificare con il business.

    
risposta data 23.02.2012 - 15:56
fonte
1

Ecco un esempio che fa esattamente cosa stai cercando. L'esempio gestisce un processo di registrazione Web che viene mantenuto in modo che l'utente possa riprendere dal punto in cui erano stati interrotti. È implementato utilizzando ASP.NET MVC in C # con Windows Workflow Foundation.

    
risposta data 24.01.2012 - 14:26
fonte

Leggi altre domande sui tag