備忘錄模式

2022-09-11 07:15:07 字數 1156 閱讀 9760

一、定義

備忘錄模式(memento):在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。這樣就可以將該物件恢復到原先儲存的狀態。

二、用處和缺點

用處:適用於功能比較複雜,但需要維護或記錄屬性歷史的類。可以根據儲存的memento資訊還原到前乙個狀態。

缺點:角色狀態需要儲存到另乙個備忘錄物件中,在資源消耗上,記憶體消耗較大。

三、示例**

/*發起人類 orginator*/

public class gamecharacter

public void setbloodvolume(double bloodvolume)

public double getbluequantity()

public void setbluequantity(double bluequantity)

public double getexperience()

public void setexperience(double experience)

public void hitboos()

public void displaystate()

public void initcharacter(double bloodvolume, double bluequantity, double experience)

/*恢復備份*/

public void recovery(statestore statestore)

/*建立備份*/

public statestore backups()

}/*備忘錄類*/

public class statestore

public double getbloodvolume()

public double getbluequantity()

public double getexperience()

}/*備忘錄管理類*/

public class storagemanager

public void setstatestore(statestore statestore)

}/*客戶端*/

public class client

}

備忘錄模式

備忘錄模式 memento 在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。這樣以後就可將該物件恢復到原先儲存的狀態。originator 發起人 負責建立乙個備忘錄memento,用以記錄當前時刻它的內部狀態,並可以使用備忘錄恢復內部狀態。originator可根據需要...

備忘錄模式

先從物件導向的三大特徵之一封裝說起。物件導向的封裝簡單點說就是把狀態 資料 和行為 操作這些資料的方法 放到一起,構成乙個單元,通常叫做類。乙個物件的行為是事先確定好的 靜態 一些指令碼,如果物件的狀態相同,物件看起來就是一樣的。所以當我們需要把乙個物件的某一時刻儲存起來,那麼只需要儲存它在那個時刻...

備忘錄模式

面臨問題 物件狀態的變化無端,如何回溯恢復物件在某個點的狀態?在軟體構建過程中,某些物件的狀態在轉換過程中,可能由於某種需要,要求程式能夠回溯到物件之前處於某個點時的狀態。如果使用一些公用介面來讓其他物件得到物件的狀態,便會暴露物件的細節實現。如何實現物件狀態的良好儲存與恢復?但同時又不會因此而破壞...