我在 .NET 上看到过两种不同的 memento 实现。
一个非常简单——对象创建了它自己的另一个实例。
另一种是使用 BinaryFormatter 和 MemoryStream 序列化对象。
哪个是首选方法?谁能指出每种方法的优缺点?
顺便说一句,我有兴趣从资源使用/开发人员生产力的角度来看待它。我很抱歉没有先说明这一点。
假设 memento 不需要持久化,哪个是首选?
从开发人员生产力的角度来看,序列化胜出。对于任何对象来说,几行通用的代码比手动创建一个可能涉及私有构造函数、字段分配等的克隆更有效。
但话又说回来,也许连载很重——我不确定。