Home Chi sono Mappa del sito Contatti  
 
Java
Apache Wicket
Sistemistica Totocalcio
 
 
Programmare Applicativi...
Presentazione del libro
Panoramica dei contenuti
 
 
Giochi in PHP
Introduzione
Filetto (Tris)
Forza 4
Sudoku
 
 
Tutorial Linux/Unix
Archivio
 
 
Sql
Tutorial su Mysql
 
 
C++
Framework a oggetti
 
Sistemi Totocalcio in Java->Architettura Principale

Architettura Principale

In questo paragrafo verrà spiegato com'è strutturata la libreria per la gestione dei sistemi del Totocalcio.
In pratica verrà spiegato come sono definite le strutte dati, le interfacce ed in generale come viene organizzata la libreria.

Dapprima occorre analizzare le attività che il sistema finale dovrà eseguire.
Dato un pronostico, dei vincoli e la categoria di vincita, le operazioni da eseguire sono: sviluppo del sistema integrale, dalle colonne sviluppate eliminazione di quelle che non rispettano i vincoli e infine l'autoriduzione delle colonne rimanenti in base alla garanzia della categoria di vincita.

Per gestire il pronostico iniziale, possiamo utilizzare un semplice enumeratore di questo tipo:

Quindi un pronostico può essere indicato in questo modo:

Per la gestione delle colonne possiamo definire un oggetto "Colonna", la cui istanza archivia la sequenza di una generica colonna. Questa classe deve implementare le più banali operazioni sulla singola colonna archiviata: i metodi verranno definiti al momento in cui se ne avrà bisogno.

Poiché le operazioni di generazione e riduzione generano una sequenza di colonne possiamo definire un'interfaccia "GeneraColonne" utile nell'implementazione e nell'eventuale estensione della libreria.
Di seguito l'implementazione dell'interfaccia:
Si noti che la generazione delle colonne crea un flusso dinamico che permette di gestire meglio l'uso della memoria.

Per la gestione dei vincoli occorre evidenziare che esistono diverse condizioni e tante altre possono essere inventate. Occorre quindi un meccanismo che permette di estendere facilmente la libreria con ulteriori implementazioni di vincoli.
Di seguito una apposita interfaccia che gestisce un generico vincolo

A questo punto è semplice implementare un meccanismo di filtro che includa un numero indefinito di vincoli.
La classe "SistemaFiltrato" implementa l'interfaccia "GeneraColonne", e mediante la proprietà "generatore" (di tipo GeneraColonne), costituisce un meccanismo in cascata di sviluppo delle colonne.
La proprietà "validatori" contiene la lista di tutti i nostri validatori. Il metodo "succuessivaColonna()" funziona esattamente come un filtro, in quanto scansiona le varie colonne del generatore fino a trovarne una valida. In pratica una colonna viene restituita se risulta verifica per tutti i validatori.
Di seguito il codice


Riepilogo