我有几个不同的类来自外部来源(不可修改),代表相同的概念。例如Address
。我有com.namespace1.Address
(与场houseNum
,street
,city
),com.namespace2.Address
(与场h
,s
,c
),namespace3.com.CoolAddress
(与场house_num
,street
,city
)。对象转换模式
问题是我使用的某些Web服务需要某些地址对象类型,所以我需要创建一个com.namespace1.Address
给定namespace3.com.CoolAddress
。这些字段很容易映射,但我正在寻找如何做到这一点的模式。
从我的角度来看,实例对象AddressConverter
没有意义,因为没有状态(只有行为),并且当类只有行为时,它归结为实用程序类中的静态方法。从长远来看,无论何时我需要将新对象映射到另一个对象,我都有一个地方可以添加/修改/删除方法。它的做法可能会改变,但我知道代码的位置(在一次),并可以在需要时更改映射。
想法?
+1处理程序表建议 - 我使用该模式相当多。 但使用'Map'而不是'Hashtable'。 :) – 2009-08-06 07:48:22
工厂是一个创建模式。问题在于管理现有对象而不是创建新对象。 – SomeWittyUsername 2012-10-25 14:17:35
@icepack我认为OP在将一个对象映射到另一个时想要创建新的实例。我认为,用“来自外部来源(不可修改)的几个不同对象”的句子来表示这些对象的类别是不可修改的。我将其基于以下句子:“我需要**创建** com.namespace1.Address给定namespace3.com.CoolAddress。”。我将编辑这个句子。 – 2012-10-27 21:37:54