2010-06-24 3 views
5

Является ли это тем, что я делаю под общим шаблоном проектирования? Если да, то как это называется?Это общий шаблон дизайна? «Дескриптор»?

У меня есть сложный объект, который имеет «простые» поля, такие как строки и списки строк, а также другие сложные объекты. Я хочу добавить экземпляры этого объекта в очередь сообщений JMS, а это значит, что они должны быть Serializable. Я не хочу делать весь объектный граф Serializable, поэтому вместо этого я выбрал объекты «Дескриптор», которые содержат необходимую информацию для создания сложных объектов и объектов «Builder», которые могут создавать объекты. Теперь я сериализую объект «Descriptor» и добавляю его в очередь. Когда объект удаляется, он встроен в полноценный объект, используя «Builder».

Важно отметить, что объекты - это задания, выполняемые в других системах. Очередь сообщений является одним из способов, и сериализация происходит только в начале жизненного цикла задания.

ответ

9

Самый похожий узор, который вы внедрили, выглядит Memento.

В этом случае он используется для хранения состояния объекта в Memento объекта, а все, что может изменить исходный объект и позволяет восстановить старое состояние с помощью Memento как «предыдущего состояния» ваш объект.

В вашем случае вам не нужно сохранять моментальный снимок объекта, чтобы изменить исходный, но просто как облегченную версию сериализуемого значения, так что это не совсем то же самое, но очень похожее.

+0

Спасибо за ответ и краткое объяснение. –

Смежные вопросы