Это общий шаблон дизайна? «Шаблон дескриптора»? - PullRequest
6 голосов
/ 24 июня 2010

Что я делаю ниже общего шаблона дизайна?Если да, то как его зовут?

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

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

Ответы [ 2 ]

10 голосов
/ 24 июня 2010

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

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

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

4 голосов
/ 24 июня 2010

Для меня это звучит так, как будто вы реализовали (часть) шаблон Memento .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...