Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [JAVA]- Organizzazione di un software

    Salve probabilmente il titolo è un pò nebuloso quindi mi spiego meglio.
    Ho alcune domande relative alla progettazione di un software.

    Lo scenario è questo:

    Un'applicazione che elabora documenti composti da blocchi di informazioni ognuno dei quali rappresentabili mediante un oggetto chiamiamoli :

    blocco1-->oggetto1
    ....
    bloccon-->oggetton

    più un oggetto rappresentativo dell'intero documento (che quindi contiene un'istanza dei precedenti).
    L'interfaccia grafica è suddivisa in pannelli pressochè coincidenti con questa struttura (cioè ogni pannello si occupa di assumere le informazioni rispetto ad un certo oggetto dei precedenti).

    Ora l'idea era di avere in ogni pannello un'istanza dell'oggetto che gli compete in modo che egli lo possa aggornare e fornire ogni pannello di un metodo tipo getTuoOggetto() che consenta dall'esterno di costruire il documento complessivo quando serve.

    Così facendo la cosa più semplice sarebbe mettere come listener degli eventi di aggiornamento dei dati da parte dell'utente ogni pannello per i dati che gli competono.

    Mi chiedo se una struttura del genere sia abbastanza conforme ai buoni principi di progettazione del software,se e quali problemi potrebbe presentare e se qualcuno ha una valida alternativa.


    Vi prego di non consigliarmi altre letture sull'ingegnerizzazione del software che purtroppo non ho il tempo di fare,quello che mi serve è un parere e dei consigli velocemente fruibili.
    Grazie.
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  2. #2
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    L'impostazione mi sembra buona. Un ulteriore livello di separazione tra interfaccia e oggetti potrebbe essere quella di creare una classe che si interpone tra l'interfaccia e gli oggetti da crare; questa classe, chiamiamola DocumentBuilder, offre tutti i metodi per creare i vari oggetti che rappresentano i blocchi del documento. Tutti i pannelli avranno quindi un riferimento ad un DocumentBuilder a cui inoltrare i messaggi per settare le impostazioni. Comuqnue questa impostazione non è detto che porti reali vantaggi in ogni caso, ma dipende dalle situazioni.


    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  3. #3
    Originariamente inviato da anx721
    L'impostazione mi sembra buona. Un ulteriore livello di separazione tra interfaccia e oggetti potrebbe essere quella di creare una classe che si interpone tra l'interfaccia e gli oggetti da crare;
    Questa è anche una buona alternativa ma io estenderei la cosa assegnando al pannello i compiti di lettura e vsualizzazione degli oggetti, alla classe DocumentBuilder i compiti di creazione, gestione, modifica degli oggetti e infine al pannello principale gli assegnerei il compito di vualizzare il tutto. Ovviamnente se un oggetto viene modifcato e creato la classe DocumentBuilder deve avvisare i pannelli i modo che loro aggiornino la loro visualizzazione. In questo modo di seguirebbe l'architettura MVC (Model-View-Controller).

  4. #4
    Ragazzi vi amo!!!Erano esattamente il genere di risposte che cercavo,grazie davvero a entrambi per le dritte,ciao ciao.
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  5. #5
    Inoltre devi puntare a diminuire il più possibile la dipendenza fra le classi e questo lo ottiene seguendo rigorosamente un architettura MVC. L'unica dipendenza che ci deve essere fra le classi è qualche riferimento mentre per il resto cerca di evitare qualsiasi tipo di dipendenza fra classi altrimenti se in futuro dovrai fare qualche modifica al codice sarà un bordello.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.