Tengo varias clases diferentes procedentes de fuentes externas (no modificables) que representan el mismo concepto. Por ejemplo Address
. Tengo com.namespace1.Address
(con campos houseNum
, street
, city
), com.namespace2.Address
(con campos h
, s
, c
), namespace3.com.CoolAddress
(con campos house_num
, street
, city
).Patrón de conversión de objeto
El problema es que ciertos servicios web que uso requieren ciertos tipos de objetos de dirección, por lo que debo crear un com.namespace1.Address
dado un namespace3.com.CoolAddress
. Los campos son fáciles de mapear, pero estoy buscando un patrón sobre cómo hacerlo.
Desde mi punto de vista, un objeto instancia AddressConverter
no tiene sentido ya que no hay estado (solo comportamiento) y cuando las clases solo tienen comportamiento se reduce a métodos estáticos en una clase de utilidad. A largo plazo, cada vez que necesite mapear objetos nuevos entre sí, tengo un lugar para agregar/modificar/eliminar métodos. Cómo se hace puede cambiar, pero sé dónde se encuentra el código (en un lugar) y puedo cambiar el mapa cuando sea necesario.
¿Pensamientos?
+1 para la sugerencia de la mesa del controlador - Utilizo ese patrón bastante. Pero use 'Map' en lugar de' Hashtable'. :) –
La fábrica es un patrón creacional. La pregunta es sobre la gestión de objetos existentes en lugar de crear nuevos. – SomeWittyUsername
@icepack Creo que OP desea crear nuevas instancias al mapear un objeto a otro. Creo que con la oración "varios objetos diferentes provenientes de fuentes externas (no modificables)" quiere decir que las clases de los objetos son inmodificables. Baso esto en la siguiente oración: "Estoy obligado a ** crear ** un com.namespace1.Address dado un namespace3.com.CoolAddress". Editaré la oración. –