什么是序列化模式?

时间:2010-10-08 00:22:28

标签: design-patterns

我在几个地方看到它被引用,但我一直无法找到该模式的描述。

2 个答案:

答案 0 :(得分:4)

对我而言,这意味着Memento pattern的特定形式。在这种情况下,Mementos是序列化对象。看守是文件系统。

答案 1 :(得分:2)

我对Memento的观点感到非常不舒服。

对我来说,序列化的主要目的是使图表在时间和空间上可传输。这是因为图形适用于直接处理,而系列可以很好地调制[电磁或声学]波,硬盘上的磁化或纸张上的黑白。 {看看例如。 http://www.parashift.com/c++-faq-lite/serialization.html以便更好地理解。

这一系列的元素是非常基本的东西,超出了图形表示{“不属于地址空间”}的责任范围 - 而不是对象。 此外,我不会轻易接受,例如。 “传输”电磁波的真空应接管看护人的责任。 并且,[de]序列化更好不是单个对象|发起者的责任:想一个解析器{“deserialiser”},其中语法处于负责该进程的最佳位置,而不是单个节点AST。

此外,序列化和反序列化通常依赖于上下文。 例如。想一想在通信信道的发送方进行RMI到IIOP的序列化,以及在接收方从IIOP到Corba的反序列化。发送之前和接收之后的两个图形表示可能类似于某种结构{可能,我们称之为语义},但是[,如果序列化和反序列化彼此不相反,]是相当不同的东西而不是相同的“发起者”

我更愿意接受的是将一系列视为图形的特定[意外连续]表示 - 在我们的现代MIME世界中,其他可能的表示形式是例如。 2D或3D图像,....可以将这些表示视为“符号”,“表面”,“语法”而不是图形方面的“语义”{我这样说,因为FOPL语句可以规范地转换为图形,反之亦然} 。 从这个角度来看,将模型 - 视图 - 控制器模式关联起来并将[de]序列化视为流程,控制器执行,然后图形接管模型角色以及表示视图角色可能是有意义的。 但这也不是一个完美的匹配,因为它是我的“两个不同的图形” - 上面的批评,同样少。

我知道,这只能鼓舞人心,而不是至少是详尽无遗的。所以,我对任何皮质反射感到好奇......

相关问题