我正在做的是一个常见的设计模式吗?如果是这样,那叫什么名字?
我有一个复杂的对象,它有“简单”字段,如字符串和字符串列表,以及其他复杂对象。我想将此对象的实例添加到JMS消息队列,这意味着它们必须是Serializable
。我不想制作整个对象图Serializable
,所以我选择制作包含构建复杂对象所需信息的“描述符”对象和可以创建对象的“构建器”对象。现在,我序列化“Descriptor”对象并将其添加到队列中。当对象出列时,它使用“Builder”构建到一个完整的对象中。
要做的一个重要注意事项是对象是在其他系统上运行的作业。消息队列是一种方式,序列化只发生在作业生命周期的开始。
答案 0 :(得分:10)
与您实施的模式最相似的模式似乎是 Memento 模式。
在这种情况下,它用于将对象的状态存储到 Memento 对象中,而任何东西都可以修改原始对象,并允许您使用 Memento恢复旧状态作为对象的“先前状态”。
在你的情况下,你不需要存储对象的快照来修改原始对象的快照,而只需要作为自身可序列化值的轻量级版本,所以它不是完全相同但非常相似。
答案 1 :(得分:4)
对我而言,这听起来像是Memento pattern实现的(部分)。