这是一种常见的设计模式吗?“描述符模式”?

9
下面的做法是否是一种常见的设计模式?如果是,它的名称是什么?
我有一个复杂对象,其中包含“简单”字段,如字符串和字符串列表,以及其他复杂对象。我想将此对象的实例添加到JMS消息队列中,这意味着它们需要是可序列化的。我不想使整个对象图可序列化,因此我选择制作包含构建复杂对象所需信息的“描述符”对象和可以创建对象的“构建器”对象。现在,我将“描述符”对象序列化并添加到队列中。当对象出队时,使用“构建器”将其构建为完整的对象。
需要注意的重要事项是,这些对象是在其他系统上运行的作业。消息队列是单向的,并且序列化只发生在作业生命周期的开始阶段。
2个回答

13

你实现的最相似的设计模式似乎是备忘录模式。

在备忘录模式中,它用于将对象的状态存储到备忘录对象中,而任何东西都可以修改原始对象,并允许您通过使用备忘录作为对象的“先前状态”来恢复旧状态。

在你的情况下,你不需要存储对象的快照来修改原始对象,只需要作为自身可序列化值的轻量级版本,因此虽然不完全一样,但非常相似。


感谢您的答案和简短解释。 - Edward Dale

5
对我而言,这听起来像是你实现了(部分)记忆模式

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接