我有一個域模型A,我想將其轉換爲另一個域模型B.因此,對於每個模型元素,我需要將其轉換爲一個或多個B元素。將java域模型從域A轉換爲域B
域A看起來很簡單,如:
public class Model
{
public List<ModelElement> elements;
}
public class ModelElement
{
public SubElement subElement;
}
public class SubElement
{
public String someData;
}
域B貌似
public class Layout
{
public List<Layer> layers;
}
public class Layer
{
public LayerData layerData;
}
public class LayerData
{
public int layerNumber;
public String name;
}
這是真的簡單,我的模型是一個有點複雜,但解釋我認爲這是 足夠。
所以我的問題是,什麼是轉換器的好方法。
我以爲寫了一個類,它穿過模型並轉換每個元素。到最後,我有一個巨大的轉換器類,這不是很好。
我的另一種方法是建立一個工廠,它爲域A的每個元素提供一個特定的轉換器。然後每個轉換器可以調用工廠來獲取子元素的轉換器。不幸的是我需要一些元素轉換額外的數據。所以要在某些轉換器中使用它,我必須將它們傳遞到所有上轉換器,這聽起來不太好。
什麼是一個很好的方法來做到這一點?
感謝您的幫助 西蒙