Hai bisogno di consigli su come progettare le interazioni tra le varie parti della mia applicazione

10

Sto provando a progettare le "principali" classi di un'applicazione Rich Desktop basata su NetBeans Platform 7. Questa applicazione consumerà servizi HTTP e, tramite un "sistema push" su TCP, riceverà messaggi.

  • Siamo 3 sviluppatori e vogliamo sviluppare moduli in parallelo
  • L'applicazione sarà stratificata (dati, affari, presentazione)
  • Useremo Modello di presentazione per separare le responsabilità
  • Alcuni dati granulari (un bean Person per esempio) saranno condivisi da più schermate (e possibilmente visualizzati su più schermi contemporaneamente)
  • ...

Siamo in grado di sviluppare schermate individuali, ma non sappiamo esattamente come organizzare l'intera applicazione e definire ogni contenuto del modulo.

  1. Quindi, hai qualche consiglio (un modello / best practice / libro / app di esempio) per coordinare / gestire le interazioni all'interno dell'intera applicazione?
  2. Qualche consiglio su come definire il contenuto dei moduli?

Grazie!

Piccolo esempio per illustrare cosa voglio costruire: Un'applicazione di gestione utenti Foo

  1. Avvia l'applicazione
  2. Alla sinistra [explorer] abbiamo una lista di piattaforme (la lista è memorizzata in un file locale)
  3. In alto abbiamo il pulsante per aggiungere una nuova piattaforma (disponibile anche con il tasto destro)
  4. Facendo doppio clic su una piattaforma, l'app chiama un servizio HTTP e recupera un elenco completo di utenti. Questo elenco viene visualizzato in [editor] (in una tabella J)
  5. Viene avviato un processo in background: tramite una connessione TCP riceviamo messaggi
  6. È possibile aggiungere un nuovo utente grazie a un pulsante in una barra degli strumenti

Se l'applicazione viene avviata su un altro PC e se l'utente è connesso alla stessa piattaforma, l'Elenco utenti verrà aggiornato in modo dinamico (aggiungi / rimuovi / stato: {offline / online}) (grazie ai messaggi)

In futuro verrà fornito un modulo di chat.

La mia domanda è (in altre parole): qualche consiglio / buona pratica per decidere sul contenuto di ciascun modulo? Se PM (Presentation Model) è un buon modo per separare la vista / business e dati e creare schermate, qual è il modo migliore per collegare più schermi basati su PM? Immagina di sviluppare il Modulo Chat, come aggiungere una voce "Discuti con ..." al menu contestuale disponibile con il tasto destro del mouse su Elenco utenti?

    
posta Destroyica 12.09.2011 - 18:03
fonte

2 risposte

5

Dato il tuo requisito, per iniziare con l'elaborazione di base dovresti fare il Pattern di comando e in seguito puoi usare < a href="http://en.wikipedia.org/wiki/Template_Pattern"> Modelli di modelli per processori di richieste. E così di seguito. Non c'è nulla chiamato schema Master. Se ci fossero, non ci serviranno più.

L'idea è di avere un design che ti permetta di evolvere con i requisiti.

Vorrei iniziare creando un'interfaccia del modulo di base e dando l'interfaccia a tutti e ad alcune utility attorno ad esso. Consenti a tutti di implementare i propri moduli in base al modulo di base.

    
risposta data 12.09.2011 - 18:09
fonte
3

I penso stai guardando uno schema MVC piuttosto classico supportato dai servizi (RESTful presumo). La chiave sarà quella di separare i servizi dall'interfaccia utente. Questo non è perché stai introducendo un'interfaccia utente alternativa, ma perché ti dà chiarezza su quale dovrebbe essere l'interfaccia di servizio.

Quindi, quando stai pensando al servizio getPeople , assicurati di pensare a come un'interfaccia utente secondaria (non Swing) interagirebbe con il servizio. Se tieni questo in mente, otterrai una soluzione abbastanza flessibile / disaccoppiata.

    
risposta data 13.09.2011 - 01:07
fonte

Leggi altre domande sui tag