On Nov 25, 2007 1:28 PM, Mr. SpOOn <[EMAIL PROTECTED]> wrote: > Eheh, ho cercato di evitare i dettagli per non dilungarmi troppo, ma > forse ho solo fatto più confusione.
Guarda, io non vorrrei pure dilungarmi troppo. Ho dato una breve occhiata a quello che tu hai descritto e mi pare codice Visual Basic e non Python. Stai completamente confondendo modello con vista (per non parlare del controller). Provo a tratteggiarti io una struttura sensata. La classe *fondamentale* è precisamente quella che tu non hai creato. Ovvero una classe Channel. Le istanze di questa classe hanno un metodo per leggere e uno per scrivere, oltre che dei metodi per settare le caratteristiche del rumore. In questa classe tu scrivi roba e la leggi 'sporcata' dal rumore. A questo punto avrai due oggetti, un encoder e un decoder che si occupano di codificare e decodificare il messaggio. Possono essere completamente esterni alla classe Channel, oppure la classe Channel permette di selezionare encoder e decoder. I due approcci ti porteranno a qualcosa come: enc = Encoder(which encoder) deco = Decoder(which decoder) chan = Channel() chan.setNoise(....) Adesso si distinguono. chan.setEncoder(enc) chan.setDecoder(deco) chan.write(message, ...) t = chan.read(...) Oppure chan.write(end(message)) t = deco(chan.read(...)) Questo è il *cuore* del tuo applicativo. Questo è il cuore per qualunque applicativo voglia fare cose simili alle tue. E' usabile da roba a linea di comando, Qt, wx, Windows, whatever. A questo punto avrai la tua bella finestrella con i bottoni colorati (la view) che chiama metodi del controller i quali si preoccupano di settare le varie proprietà del Channel, di mandargli messaggi, di leggere risposte. La parte cui tu stai dando importanza è quella meno rilevante. Certo, il mio design è completamente migliorabile. E' buttato giù in una manciata di secondi ed è necessario criticarlo, migliorarlo, etc. E' in generale un processo per raffinamenti successsivi. Non solo: il cuore che io ho progettato è completamente e facilmente testabile. Per cui sei in grado di provare che funziona sufficientemente bene (il testing sfortunatamente non riesce a dare dimostrazioni di correttezza). A questo punto gli butti addosso una GUI che fa per l'appunto quello che deve fare una GUI. -- -enrico _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python