Ho diverse classi provenienti da fonti esterne (non modificabili) che rappresentano lo stesso concetto. Ad esempio Address
. Ho com.namespace1.Address
(con campi houseNum
, street
, city
), com.namespace2.Address
(con campi h
, s
, c
), namespace3.com.CoolAddress
(con campi house_num
, street
, city
).Pattern di conversione oggetto
Il problema è che determinati servizi Web che uso richiedono determinati tipi di oggetto Indirizzo, quindi sono obbligato a creare un dato un namespace3.com.CoolAddress
. I campi sono abbastanza facili da mappare ma sto cercando un modello su come farlo.
Dal mio punto di vista, un oggetto istanza AddressConverter
non ha senso in quanto non esiste uno stato (solo comportamento) e quando le classi hanno solo un comportamento si riduce a metodi statici in una classe di utilità. A lungo termine, ogni volta che ho bisogno di mappare i nuovi oggetti l'uno con l'altro, ho un posto dove aggiungere/modificare/rimuovere metodi. Il modo in cui è fatto potrebbe cambiare, ma so dove si trova il codice (in una volta) e posso modificare la mappatura quando è necessario.
Pensieri?
+1 per il suggerimento del tavolo gestore: io uso questo schema un po '. Ma usa 'Mappa' piuttosto che' Hashtable'. :) –
La fabbrica è un modello creativo. La domanda riguarda la gestione degli oggetti esistenti piuttosto che la creazione di nuovi. – SomeWittyUsername
@icepack Penso che l'OP voglia creare nuove istanze quando si esegue il mapping di un oggetto a un altro. Penso che con la frase "diversi oggetti provenienti da fonti esterne (non modificabili)" egli intende che le classi degli oggetti non sono modificabili. Lo baso sulla seguente frase: "Sono obbligato a ** creare ** un com.namespace1.Address dato un namespace3.com.CoolAddress.". Modificherò la frase. –