2010-06-24 6 views
5

Est ce que je fais en dessous d'un modèle de conception commun? Si oui, quel est le nom?Est-ce un modèle de conception commun? "Modèle de descripteur"?

J'ai un objet complexe qui a des champs "simples" comme des chaînes et des listes de chaînes, ainsi que d'autres objets complexes. Je souhaite ajouter des instances de cet objet à une file d'attente de messages JMS, ce qui signifie qu'elles doivent être Serializable. Je ne veux pas faire le graphe de l'objet entier Serializable, j'ai donc choisi de créer des objets "Descripteur" qui contiennent les informations nécessaires pour construire les objets complexes et les objets "Builder" qui peuvent créer les objets. Maintenant, je sérialise l'objet "Descriptor" et l'ajoute à la file d'attente. Lorsque l'objet est retiré, il est construit dans un objet à part entière en utilisant le "Constructeur".

Une remarque importante à faire est que les objets sont des travaux exécutés sur d'autres systèmes. La file d'attente de messages est à sens unique et la sérialisation ne se produit qu'au début du cycle de vie du travail.

Répondre

9

Le motif le plus similaire à celui que vous avez implémenté semble être le motif Memento.

Dans ce cas, il est utilisé pour stocker l'état d'un objet dans un Memento objet alors que tout peut modifier l'objet original et vous permet de restaurer l'ancien état en utilisant le Memento comme un « état antérieur » de votre objet.

Dans votre cas, vous n'avez pas besoin de stocker un instantané de l'objet pour modifier l'original, mais juste une version légère de la valeur sérialisable de lui-même, ce n'est pas exactement la même chose.

+0

Merci pour la réponse et une brève explication. –

4

Pour moi, cela ressemble à vous mis en œuvre (partie de) le Memento pattern.

Questions connexes