MokaByte
Numero 28 - marzo 1999
|
|||
|
in pratica |
||
Andrea Trentini |
|
||
Una piccola nota e poi un corposo esempio di codice java per la realizzazione di filtri applicando il composite... Infatti prima di entrare nei particolari dell'applicazione di questo mese vorrei fare una chiosa all'articolo di Lorenzo... Al solito il sorgente lo trovate qui. |
Ognuno di noi
(informatici) usa il pattern composite quasi tutti i giorni della sua vita,
probabilmente senza accorgersene.
Facciamo una prova: mettetevi davanti al computer (dietro non si vede niente! :-) e aprite una finestra associata al disco fisso (assumo per ipotesi che abbiate Windoze o qualche sistema simile). Vedrete una serie di icone che rappresentano file o directory. Se selezionate una di quelle icone e la trascinate da qualche parte state iniziando uno spostamento/copia di un file/directory... Se invece chiedete le proprietà di un certo oggetto vi verrà di sicuro fornita anche l'informazione riguardante lo spazio occupato da quell'oggetto... tale spazio è la dimensione del file (se di file si tratta) mentre è la somma degli spazi occupati dagli "oggetti" contenuti se avete selezionato una directory. Detto in termini OO quello che avete fatto è stato semplicemente chiedere un "servizio" (esecuzione di un metodo, in questo caso una specie di metodo getSize()) ad un oggetto composite... il servizio è "dimmi quanto occupi" e il polimorfismo vi ha mascherato l'effettiva implementazione (nel senso che non vi interessa se avete chiesto l'informazione ad un FILE o ad una DIRECTORY). Questo è il senso dell'esistneza del composite. Guardate lo schema del composite coi nomi cambiati opportunamente... ;-)
(i post-it sono
note in pseudocodice) Vi ricorda qualcosa? Ora però vi parlerò
di un altro esempio di applicazione...
Scopo applicativo In elettronica
si usano spesso quelli che vengono chiamati FILTRI. Esistono i cosiddetti
"passa-basso", "passa-alto", "passa-banda" e altri creati ad hoc.
Ed ecco lo schema
formale del composite applicato all'esempio (è in OMT perchè
quando l'ho realizzato non usavo ancora UML)
Nota importante: per realizzare nuovi filtri Se volete aggiungere un nuovo filtro non dovete far altro che:
Definizione dei
concetti di base di un filtro
Un filtro astratto nella sua minima descrizione è costituito da questi attributi/funzionalità:
Al di fuori del range di validità il metodo out() lancia un'eccezione. Un filtro PIATTO (NON è composto) Qui vedete l'esempio
che trovate nel sorgente allegato
E' una rappresentazione "applettizzata" di alcuni filtri di prova. Sono tre cuspidi, un trapezio, un lineare e un flat. Vi basta lanciare appletviewer _applet.html Note Per informazioni
ulteriori guardate anche la JavaDoc allegata al sorgente o mandatemi mail...
;-)
|
|
||
MokaByte ricerca
nuovi collaboratori.
|
||
|