【发布时间】:2013-08-06 07:26:39
【问题描述】:
我有一个域模型 A,我想将其转换为另一个域模型 B。因此,对于每个模型元素,我需要将其转换为 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 的每个元素提供一个特定的转换器。然后每个转换器可以调用工厂来获取子元素的转换器。不幸的是,我需要一些元素转换附加数据。因此,要在某些转换器中使用它,我必须将它们传递给所有上层转换器,这听起来也不是很好。
有什么好的方法呢?
感谢您的帮助 西蒙
【问题讨论】:
标签: java dns transform converter