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

时间:2010-06-24 12:30:12

标签: java design-patterns

我正在做的是一个常见的设计模式吗?如果是这样,那叫什么名字?

我有一个复杂的对象,它有“简单”字段,如字符串和字符串列表,以及其他复杂对象。我想将此对象的实例添加到JMS消息队列,这意味着它们必须是Serializable。我不想制作整个对象图Serializable,所以我选择制作包含构建复杂对象所需信息的“描述符”对象和可以创建对象的“构建器”对象。现在,我序列化“Descriptor”对象并将其添加到队列中。当对象出列时,它使用“Builder”构建到一个完整的对象中。

要做的一个重要注意事项是对象是在其他系统上运行的作业。消息队列是一种方式,序列化只发生在作业生命周期的开始。

2 个答案:

答案 0 :(得分:10)

与您实施的模式最相似的模式似乎是 Memento 模式。

在这种情况下,它用于将对象的状态存储到 Memento 对象中,而任何东西都可以修改原始对象,并允许您使用 Memento恢复旧状态作为对象的“先前状态”。

在你的情况下,你不需要存储对象的快照来修改原始对象的快照,而只需要作为自身可序列化值的轻量级版本,所以它不是完全相同但非常相似。

答案 1 :(得分:4)

对我而言,这听起来像是Memento pattern实现的(部分)。