大B:“使用了备忘录模式来实现保存对象的历史状态可以有效地保持封装边界。使用备忘录可以避免暴露一些只应由‘备忘发起角色’管理却又必须存储在‘备忘发起角色’之外的信息。把‘备忘发起角色’内部信息对其他对象屏蔽起来,从而保持了封装边界。但是如果备份的‘备忘发起角色’存在大量的信息或者创建、恢复操作非常频繁,则可能造成很大的开销。”
小A:“那使用备忘录模式的前提是什么?”
大B:“1、必须保存一个对象在某一个时刻的(部分)状态,这样以后需要时它才能恢复到先前的状态。2、如果一个用接口来让其它对象直接得到这些状态,将会暴露对象的实现细节并破坏对象的封装性。”