我有幾個不同的類來自外部來源(不可修改),代表相同的概念。例如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