di: Pasquale Congiustì 10 Marzo 2008
Nell'articolo delle scorse settimane abbiamo discusso su come sviluppare una cache per l'accesso alla base dati. Abbiamo visto come il suo utilizzo possa migliorare le performance del sistema con dei semplici accorgimenti. In questo articolo prenderemo spunto da quanto prodotto finora per aggiungere un elemento dinamico molto in voga nei siti web che utilizzano tecniche di rappresentazione AJAX.
Probabilmente, navigando per il web, spesso vi è capitato di compilare dei moduli di ricerca che, contestualmente alla digitazione dei caratteri, vi davano dei suggerimenti (sulle ricerche più frequenti, ad esempio, o su quelle recenti). Quello che svilupperemo noi è uno script che in fase di digitazione del testo del modulo di ricerca, vi darà dei suggerimenti su quei termini contenuti nella cache.
La classe che gestisce le operazioni sul layer di persistenza, nell'articolo sulle cache, è la classe astratta Database, che viene poi implementata dal proxy (DatabaseProxy) e dalla classe concreta (DatabaseConcrete). La prima modifica che dovremo fare sarà estendere il funzionamento di questo modulo software con l'aggiunta di un metodo che restituisca le keyword di ricerca mantenute in cache.
Per non perdere di vista la struttura progettuale che abbiamo introdotto nello scorso articolo andremo a modificare direttamente la gerarchia presentata (anziché fare operazioni di estensione della gerarchia delle classi), aggiungendo il metodo showKeywords:
Listato 1. Carica una lista di keyword recenti
//Database.java
public abstract Collection<String> showKeywords(String key);
...
Come intuitivamente si può capire, il compito di questo metodo è quello di restituire una collezione di keyword. L'implementazione concreta è appannaggio della classe DatabaseProxy (quella dove risiede concretamente la struttura dati della cache):
Listato 2. Ricerca e restituisce i risultati
//DatabaseProxy.java
//Ricerchiamo tutte le keyword presenti nella cache, che iniziano con la keyword KEY
public Collection<String> showKeywords(String key) {
Collection<String> toRet=new ArrayList();
// Recupero tutte le chiavi di ricerca presenti in cache
Set ks=cache.keySet();
Iterator<String> it=ks.iterator();
//Iteriamo il set di key, se c'e' match, lo aggiungiamo alla lista di ritorno
while(it.hasNext()){
String tmpKey=it.next();
//lavoriamo su oggetti NON case sensitive
if (tmpKey.toLowerCase().startsWith(key.toLowerCase()))
toRet.add(tmpKey);
}
return toRet;
}
Utilizzando il metodo keySet() sulla struttura dati abbiamo tutte le chiavi di ricerca contenute in cache. A questo punto controlliamo se tutte queste chiavi di ricerca combaciano con la stringa key, la chiave di ricerca passata come riferimento.
|
AppFuse: realizzare un'applicazione completa (implementare i servizi) |
Guida Apache StrutsIl primo e più utilizzato tra i framework MVC del mondo Java,... |
Guida Java SpringScoprire il lightweight container più famoso del mondo Java.... |
Guida Java 6Prendendo le mosse dalla guida Java, già presente su HTML.it,... |
Ogni mese, direttamente nella tua e-mail: articoli, script e guide su Java, Visual Basic, VB.Net ed i più diffusi linguaggi di programmazione.
Iscriviti alla newsletter
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |