J'ai un modèle de domaine A que je veux transformer en un autre modèle de domaine B. Donc, pour chaque élément de modèle, j'ai besoin de le convertir en un ou plusieurs éléments de B.convertir le modèle de domaine java du domaine A au domaine B
domaine a semble très simplifié comme:
public class Model
{
public List<ModelElement> elements;
}
public class ModelElement
{
public SubElement subElement;
}
public class SubElement
{
public String someData;
}
ressemble domaine B comme
public class Layout
{
public List<Layer> layers;
}
public class Layer
{
public LayerData layerData;
}
public class LayerData
{
public int layerNumber;
public String name;
}
Ceci est vraiment simplifié, mes modèles sont un peu plus complexe, mais pour expliquer, je pense qu'il est assez. Donc, ma question est, quelle est une bonne approche pour le convertisseur.
Je pensais écrire une seule classe, qui traverse le modèle et convertit chaque élément. À la fin, j'ai un énorme cours de conversion, ce qui n'est pas très agréable.
Mon autre approche consistait à construire une usine, ce qui donne pour chaque élément du domaine A un convertisseur spécifique. Chaque convertisseur peut alors appeler l'usine pour obtenir le convertisseur pour les sous-éléments. Malheureusement, j'ai besoin pour certaines conversions d'éléments de données supplémentaires. Donc, pour l'utiliser dans certains convertisseurs, je dois les passer à travers tous les convertisseurs supérieurs, ce qui ne sonne pas très bien aussi.
Quelle serait une bonne façon de le faire?
Merci pour l'aide Simon