2010-06-24 17 views
5

È quello che sto facendo sotto un modello di progettazione comune? Se sì, come si chiama?Si tratta di un modello di progettazione comune? "Schema descrittore"?

Ho un oggetto complesso che ha campi "semplici" come stringhe e liste di stringhe, nonché altri oggetti complessi. Voglio aggiungere istanze di questo oggetto a una coda di messaggi JMS, il che significa che devono essere Serializable. Non voglio creare l'intero oggetto grafico Serializable, quindi ho scelto invece di creare oggetti "Descrittore" che contengano le informazioni necessarie per costruire gli oggetti complessi e gli oggetti "Builder" che possono creare gli oggetti. Ora serializzo l'oggetto "Descrittore" e lo aggiungo alla coda. Quando l'oggetto viene rimosso dalla coda, viene incorporato in un oggetto a tutti gli effetti usando "Builder".

Una nota importante da fare è che gli oggetti sono lavori eseguiti su altri sistemi. La coda dei messaggi è a senso unico e la serializzazione avviene solo all'inizio del ciclo di vita del lavoro.

risposta

9

Il modello più simile a quello che si implementato sembra il Memento modello.

In questo caso viene utilizzato per memorizzare lo stato di un oggetto in un oggetto Memento, mentre nulla può modificare l'oggetto originale e consente di ripristinare lo stato precedente utilizzando il Memento come uno "stato precedente" di il tuo oggetto.

Nel tuo caso non è necessario memorizzare un'istantanea dell'oggetto per modificare quella originale ma solo come una versione leggera del valore serializzabile di se stesso, quindi non è esattamente la stessa cosa, ma abbastanza simile.

+0

Grazie per la risposta e una breve spiegazione. –

Problemi correlati