您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“web備忘錄模式結(jié)構(gòu)是怎樣的”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“web備忘錄模式結(jié)構(gòu)是怎樣的”吧!
結(jié)構(gòu)
參與者
? Memento(備忘錄)
—對象的狀態(tài)被提取之后形成的數(shù)據(jù)稱為備忘錄。具體需要保存哪些數(shù)據(jù)由生成狀態(tài)數(shù)據(jù)的類自行決定。
—由于管理者不了解備忘錄的詳細(xì)內(nèi)容,因此也就無從操作備忘錄中的數(shù)據(jù)。這樣就從結(jié)果上保證了備忘錄數(shù)據(jù)的封裝性。
—在Python語言中不需要定義備忘錄類。
? Originator(原發(fā)器)
— 提取自己的狀態(tài),生成備忘錄的類稱為原發(fā)器。在收到生成備忘錄的請求時生成備忘錄數(shù)據(jù)。
— 在收到恢復(fù)備忘錄的請求時,根據(jù)輸入的備忘錄數(shù)據(jù)恢復(fù)自己的狀態(tài)。
? Caretaker(負(fù)責(zé)人)
— 根據(jù)功能的需求從原發(fā)器獲取備忘錄或者使用備忘錄恢復(fù)原發(fā)器的狀態(tài)。
— 作為備忘錄的管理者,其職責(zé)只限于管理備忘錄數(shù)據(jù),而不會操作數(shù)據(jù)(刪除除外)。
—需要管理的信息除了備忘錄數(shù)據(jù)本身以外,還包括備忘錄和原發(fā)器的對應(yīng)關(guān)系信息(隱性或顯性的),只有這樣才能保證備忘錄可以發(fā)送給正確的原發(fā)器對象。
效果
備忘錄模式將生成備忘錄和使用備忘錄恢復(fù)自身狀態(tài)的工作完全交給原發(fā)器執(zhí)行。通過這種方式使利用者可以在完全不了解原發(fā)器內(nèi)部構(gòu)造的情況下就可以取得和恢復(fù)備忘錄中保存的數(shù)據(jù)。
這樣做的好處是實(shí)現(xiàn)了備忘錄生成/使用和管理這兩件事的完全分離,盡可能降低了使用備忘錄數(shù)據(jù)所需了解的信息,從而很好地保證了軟件的擴(kuò)展性。但從另一個角度來講,把生成備忘錄的過程完全交給原發(fā)器也會造成一定的不良后果。例如生成備忘錄所占內(nèi)存空間的容量無法控制等。這一點(diǎn)并不是備忘錄模式的問題,而是封裝的問題。而且從實(shí)際的開發(fā)來講,只要稍加注意,這個問題是完全可以回避的。
到此,相信大家對“web備忘錄模式結(jié)構(gòu)是怎樣的”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。