Che tecnica di programmazione è questa?

1

Ho due classi Java. Il primo è chiamato "Index", e il secondo, temporaneamente, l'ho chiamato "IndexCache":

public class IndexCache {
    private static Map<String, Index> map = null;

    static {
        map = new HashMap<String, Index>();
    }

    @Override
    public Index getIndexString(key) {
        Index index = map.get(key);

        if (index == null) {
            index = new Index("yadayadayada");
            map.put(key, index);
        }

        return index;

    }

}

Come puoi vedere, IndexCache mantiene una mappa degli oggetti Index per evitare di creare lo stesso oggetto più e più volte.

Bene, quale tecnica di programmazione è questa? Quale sarebbe il suo nome?

    
posta Mario S 03.03.2015 - 05:29
fonte

1 risposta

12

Si chiama cache , la tecnica è chiamata caching .

Una cache è qualcosa che memorizza i dati al fine di accelerare ulteriori richieste per gli stessi dati. Questi dati possono essere il risultato di alcuni calcoli costosi e quindi essere memorizzati nella cache per evitare di ripetere questo calcolo costoso. Potrebbe anche essere una copia di alcuni dati che sono già pre-calcolati altrove ma che è costoso da recuperare (ad esempio, il caching dei blocchi del filesystem da un disco rigido lento nella RAM o il caching di documenti HTTP da un server remoto su una cache proxy locale).

Una cache viene popolata dinamicamente con valori diversi ogni volta e può anche aumentare e diminuire.

Questo è diverso da una tabella di ricerca , che viene popolata staticamente, sempre con gli stessi valori, spesso anche codificati nel codice sorgente o precalcolati al momento della compilazione.

Memoization è un caso speciale, si riferisce in particolare alla memorizzazione nella cache dei risultati dell'applicazione di funzione con gli stessi argomenti.

    
risposta data 03.03.2015 - 12:30
fonte

Leggi altre domande sui tag