014 Visual Basic 備忘錄模式

2021-10-06 12:42:35 字數 1812 閱讀 5015

1.發起人( originator)類

'發起人,負責建立乙個備忘錄,用以記錄當前狀態,並可使用備忘錄恢復狀態

public class originator

private _state as string

public property state as string

getreturn _state

end get

set(byval value as string)

_state = value

end set

end property

'建立備忘

public function creatememento() as memento

return new memento(state)

end function

'恢復備忘

public sub setmemento(byval memen as memento)

state = memen.state

end sub

public sub show()

console.writeline("state=" & state)

end sub

end class

2.備忘錄( memento)類

public class memento

'可以有多個屬性值

private _state as string

public readonly property state as string

getreturn _state

end get

end property

'匯入資料

public sub new(byval st as string)

me._state = st

end sub

end class

3.管理者( caretaker)類

'管理者

public class caretaker

private _mymemento as memento

public property mymemento as memento

getreturn _mymemento

end get

set(byval value as memento)

_mymemento = value

end set

end property

end class

4.客戶端

module module1

sub main()

'發起者初始態

dim o as new originator

o.state = "on"

o.show()

'儲存狀態

dim c as new caretaker

c.mymemento = o.creatememento

'改變了狀態

o.state = "off"

o.show()

'恢復原初始態

o.setmemento(c.mymemento)

o.show()

console.read()

end sub

end module

備忘錄模式

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

備忘錄模式

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

備忘錄模式

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