大B:“使用了備忘錄模式來實現(xiàn)保存對象的歷史狀態(tài)可以有效地保持封裝邊界。使用備忘錄可以避免暴露一些只應(yīng)由‘備忘發(fā)起角色’管理卻又必須存儲在‘備忘發(fā)起角色’之外的信息。把‘備忘發(fā)起角色’內(nèi)部信息對其他對象屏蔽起來,從而保持了封裝邊界。但是如果備份的‘備忘發(fā)起角色’存在大量的信息或者創(chuàng)建、恢復(fù)操作非常頻繁,則可能造成很大的開銷。”
小A:“那使用備忘錄模式的前提是什麼?”
大B:“1、必須保存一個對象在某一個時刻的(部分)狀態(tài),這樣以後需要時它才能恢復(fù)到先前的狀態(tài)。2、如果一個用接口來讓其它對象直接得到這些狀態(tài),將會暴露對象的實現(xiàn)細節(jié)並破壞對象的封裝性。”