MokaByte
Numero 29 - Aprile 1999
|
||||
|
|
la pratica |
||
|
|
esempi di codice e considerazioni |
||
Dopo qualche cenno teorico di Lorenzo Bettini, eccovi l'atteso codice. Realizzeremo una classe che si occupa della memorizzazione di oggetti memorizzabili" (la ripetizione è d'obbligo ;-) Al solito, qui trovate il sorgente. |
||
L'esigenza
L'esempio che vi propongo è tratto da un prodotto che stiamo realizzando in università. Tale prodotto NON usa un database per la memorizzazione delle informazioni (eresia! ;-) ma si basa sull'uso estensivo della persistenza degli oggetti attraverso il pattern memento. La nostra esigenza principale è proprio quella di non vincolare l'utilizzo di un database, ma di realizzare un prodotto 100% "pure java". Questo anche se esistono db "pure java" (vedi IDB)... il fatto è che usando un db bisogna cominciare a scrivere SQL che non è il nostro linguaggio preferito... ;-) inoltre NON necessitiamo di query complicate, infatti in realtà abbiamo giusto bisogno di "salvare lo stato di alcuni oggetti importanti". Come
abbiamo usato il memento
Ogni oggetto che voglia essere salvato dovrà implementare questa interfaccia a lui NON interessa come e dove verranno salvati gli stati che lo rappresentano Questi invece saranno gli oggetti da usare come Memento, cioè quelli che incapsuleranno l'informazione estratta dal PersistentI a lui NON interessa chi è l'oggetto che rappresenta, nè dove e come viene salvato queste saranno tutte le classi capaci di gestire la memorizzazione da qualche parte (di solito su disco) a lui NON interessa da dove arrivano gli stati da salvare Se si vuole salvare lo stato di un oggetto persistente (PersistentI) basta chiedergli di generare un memento (StateI) chiamando il metodo spawnState(), mentre se si vuole reinizializzarlo basta fornirgli un memento (StateI) chiamando il metodo absorbState(StateI). Lo StorageI ci serve per gestire in qualche modo la memorizzazione degli stati degli oggetti. E' normalmente chiamato Caretaker. Un'ipotesi di
funzionamento
PersistentI p;
Come
usare l'esempio
Che
mi serve un oggetto "stato di se stesso" ?
Alla
prossima...
|
||
|
||
|
||
MokaByte ricerca nuovi collaboratori. Chi volesse mettersi in contatto con noi può farlo scrivendo a mokainfo@mokabyte.it |
||
|