2010-06-24 12 views
5

Was mache ich unter einem gemeinsamen Designmuster? Wenn ja, wie ist der Name?Ist das ein allgemeines Entwurfsmuster? "Beschreibungsmuster"?

Ich habe ein komplexes Objekt, die „einfache“ Felder wie Strings und Listen von Strings, sowie anderen komplexen Objekten hat. Ich möchte Instanzen dieses Objekts zu einer JMS-Nachrichtenwarteschlange hinzufügen, was bedeutet, dass sie Serializable sein müssen. Ich möchte nicht das gesamte Objektdiagramm Serializable machen, also habe ich stattdessen gewählt, "Descriptor" -Objekte zu erstellen, die die notwendigen Informationen enthalten, um die komplexen Objekte und "Builder" -Objekte zu erstellen, die die Objekte erstellen können. Jetzt serialisiere ich das Objekt "Descriptor" und füge es der Warteschlange hinzu. Wenn das Objekt aus der Warteschlange entfernt wird, wird es mit dem "Builder" in ein vollwertiges Objekt integriert.

Ein wichtiger Hinweis zu machen, ist, dass die Objekte Arbeitsplätze, die auf anderen Systemen ausgeführt werden. Die Nachrichtenwarteschlange ist eine Möglichkeit und die Serialisierung erfolgt nur zu Beginn des Lebenszyklus des Jobs.

Antwort

9

Das ähnlichste Muster zu dem, das Sie implementiert haben, scheint das Memento Muster zu sein.

In diesem Fall wird es verwendet, um den Zustand eines Objekts in ein Memento Objekt zu speichern, während alles, was das ursprüngliche Objekt ändern kann und ermöglicht es Ihnen, den alten Zustand wieder herzustellen, indem mit dem Memento als „früherem Zustand“ dein Objekt.

In Ihrem Fall müssen Sie keinen Snapshot des Objekts speichern, um das Original zu ändern, sondern nur eine Lightweight-Version des serialisierbaren Werts von sich selbst, damit es nicht genau die gleichen Dinge sind, aber ziemlich ähnlich.

+0

Danke für die Antwort und kurze Erklärung. –

Verwandte Themen