首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在.NET上的备忘录实现

在.NET上的备忘录实现
EN

Stack Overflow用户
提问于 2008-11-12 16:10:52
回答 4查看 638关注 0票数 3

我在.NET上看到了两种不同的memento实现。

其中一个非常简单-对象创建了另一个自身的实例。

另一个是使用BinaryFormatter和MemoryStream序列化对象。

哪一种是首选方法?有人能指出每种方法的优缺点吗?

顺便说一句,我有兴趣从资源使用/开发人员生产力的角度来看待它。我很抱歉没有先说出来。

假设备忘录不需要持久化,哪一个是首选的?

从开发人员生产力的角度来看,序列化赢得了成功。对于任何对象来说,有几行是通用的,比手动创建一个可能涉及私有构造函数、字段分配等的克隆更有效。

但是,也许序列化很重--我不确定。

EN

回答 4

Stack Overflow用户

发布于 2008-11-12 16:20:40

我认为,如何创建/存储memento的选择取决于您希望memento持续多长时间,以及是否需要跨应用程序域通信该memento。如果备忘录只存在一段很短的时间,并且仅由同一个线程使用,那么克隆的对象是合理的。如果该备忘录需要持久化或传递给另一个应用程序域,则最好是序列化。如果备忘录存在很长时间,您甚至可能希望序列化它并将其保存在外部(在一个文件或DB中)。

票数 2
EN

Stack Overflow用户

发布于 2008-11-12 16:16:33

如果要持久化备忘录,请使用序列化方法。

否则,克隆的对象就可以了。

票数 0
EN

Stack Overflow用户

发布于 2008-11-12 16:21:49

说我疯了,效率低,但我做我的StringBuilder和一个字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/284437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档