14 votes

Patron de conception pour convertir un modèle en un autre modèle

En fait, j'ai un certain nombre d'objets dans mon application et je dois les convertir en objets tiers avant d'envoyer la requête. À la réception de la réponse, je dois reconvertir ces objets en objets pris en charge par mon application.

Quel modèle puis-je utiliser pour convertir un objet modèle en un autre en Java ?

9voto

casablanca Points 41814

Je ne pense pas qu'il existe un modèle spécifique pour cela, mais vous avez simplement besoin d'une classe "convertisseur" ou "traducteur" qui prend un objet et en renvoie un autre :

MyObject convert(ThirdPartyObject obj);
ThirdPartyObject convert(MyObject obj);

4voto

user1310761 Points 80

L'adaptateur ou le modèle de façade devrait résoudre votre problème :

Adaptateur : http://www.youtube.com/watch?v=TriX8OiEhOU

Façade : http://www.youtube.com/watch?v=WLjvNpP6yeQ

4voto

Ravindra babu Points 5571

Adaptateur y Façade sont des modèles structurels. Vous n'avez pas de modèles à satisfaire. Transformation d'objets .

Sur le front des modèles de création, Constructeur est un modèle auquel vous pouvez penser.

Généralement Constructeur est utilisé pour construire un objet avec des paramètres obligatoires et optionnels. Mais vous pouvez l'affiner en construisant l'objet nécessaire.

Vous pouvez également résoudre le problème sans modèle. Vous pouvez soit utiliser Composition des objets ou Écrivez votre propre méthode pour transformer l'objet .

Consultez la question SE correspondante avec un exemple de code :

Comment élaguer un objet de certains de ses champs en Java ?

1voto

icepack Points 11261

Vous recherchez probablement le modèle d'adaptateur : http://en.wikipedia.org/wiki/Adapter_pattern

1voto

tjg184 Points 2596

Il est un peu difficile de déterminer le contexte des objets, mais regardez le modèle Assembleur, bien que ce ne soit pas techniquement un modèle de conception. Une classe Assembler est utilisée pour passer d'un objet à un autre, en particulier lorsqu'un objet est un DTO (un peu comme votre objet de réponse) vers un objet Domain. Le framework Dozer peut vous aider à effectuer certaines de ces transformations fastidieuses.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X