代码之家  ›  专栏  ›  技术社区  ›  Edward Dale

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

  •  6
  • Edward Dale  · 技术社区  · 15 年前

    我所做的是在一个普通的设计模式下吗?如果有的话,叫什么名字?

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

    需要注意的一点是,对象是在其他系统上运行的作业。消息队列是一种方式,序列化仅在作业生命周期的开始时发生。

    2 回复  |  直到 15 年前
        1
  •  10
  •   Jack    15 年前

    与您实现的模式最相似的模式似乎是 纪念品 模式。

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

    在您的例子中,不需要存储对象的快照来修改原始的快照,而只需要存储对象本身的可序列化值的轻量级版本,这样它就不是完全相同的东西,而是非常相似的。

        2
  •  4
  •   Péter Török    15 年前

    对我来说,这听起来像是你实现了 Memento pattern .

    推荐文章