中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

學(xué)網(wǎng)站開發(fā)培訓(xùn)機(jī)構(gòu)今日新聞聯(lián)播主要內(nèi)容

學(xué)網(wǎng)站開發(fā)培訓(xùn)機(jī)構(gòu),今日新聞聯(lián)播主要內(nèi)容,wordpress 表單 水印,網(wǎng)站做排名靠前設(shè)計(jì)模式—行為型模式之備忘錄模式 備忘錄(Memento)模式:在不破壞封裝性的前提下,捕獲一個(gè)對(duì)象的內(nèi)部狀態(tài),并在該對(duì)象之外保存這個(gè)狀態(tài),以便以后當(dāng)需要時(shí)能將該對(duì)象恢復(fù)到原先保存的狀態(tài)。該模式又叫快照?!?article class="baidu_pl">

設(shè)計(jì)模式—行為型模式之備忘錄模式

備忘錄(Memento)模式:在不破壞封裝性的前提下,捕獲一個(gè)對(duì)象的內(nèi)部狀態(tài),并在該對(duì)象之外保存這個(gè)狀態(tài),以便以后當(dāng)需要時(shí)能將該對(duì)象恢復(fù)到原先保存的狀態(tài)。該模式又叫快照模式。這是一種對(duì)象行為型模式。

有如下角色:

  • 發(fā)起人(Originator)角色:記錄當(dāng)前時(shí)刻的內(nèi)部狀態(tài)信息,提供創(chuàng)建備忘錄和恢復(fù)備忘錄數(shù)據(jù)的功能,實(shí)現(xiàn)其他業(yè)務(wù)功能,它可以訪問備忘錄里的所有信息。

  • 備忘錄(Memento)角色:負(fù)責(zé)存儲(chǔ)發(fā)起人的內(nèi)部狀態(tài),在需要的時(shí)候提供這些內(nèi)部狀態(tài)給發(fā)起人。

  • 管理者(Caretaker)角色:對(duì)備忘錄進(jìn)行管理,提供保存與獲取備忘錄的功能,但其不能對(duì)備忘錄的內(nèi)容進(jìn)行訪問與修改。

示例

比如我們有一個(gè)奧特曼游戲,每一個(gè)奧特曼有血量,等級(jí),我們可以建一個(gè)游戲備份來保存這些有用的內(nèi)容,并使用游戲服務(wù)器管理他們。

奧特曼類如下:

@Data
public class Ultraman {private Integer hp;//血量private Integer level;//等級(jí)//備忘錄管理者private GameServer gameServer = new GameServer();/*** 進(jìn)行游戲*/public void play(){hp = level = new Random().nextInt();}/*** 保存?zhèn)渫?/public void saveRocord() throws Exception {System.out.println("保存?zhèn)渫?#34;);gameServer.addRecord(this);}/*** 獲取備忘錄*/public Ultraman restoreRecord(Integer id) throws Exception {System.out.println("獲取記錄");return gameServer.getRecord(id);}public void exit() throws Exception {System.out.println("退出并存檔");gameServer.addRecord(this);}
}

記錄類如下:

/*** 游戲備份----備忘錄*/
@Data
public class GameRocord {private Integer id;//備忘錄idprivate Integer hp;//血量private Integer level;//等級(jí)
}

游戲服務(wù)器類如下:

/*** 游戲服務(wù)器——備忘錄管理者*/
public class GameServer {//記錄idprivate Integer i = 1;//備忘錄管理private Map<Integer,GameRocord> recordMap = new HashMap<>();/*** 添加備忘錄*/public void addRecord(Ultraman ultraman) throws Exception {GameRocord gameRocord = new GameRocord();BeanUtils.copyProperties(gameRocord,ultraman);gameRocord.setId(i++);recordMap.put(gameRocord.getId(),gameRocord);}/*** 恢復(fù)備忘錄*/public Ultraman getRecord(Integer id) throws Exception{GameRocord gameRocord = recordMap.get(id);Ultraman ultraman = new Ultraman();BeanUtils.copyProperties(ultraman,gameRocord);return ultraman;}}

測試類如下:

public class MementoTest {public static void main(String[] args) throws Exception {Ultraman ultraman = new Ultraman();//進(jìn)行游戲ultraman.play();//存檔ultraman.saveRocord();ultraman.setHp(1);ultraman.saveRocord();Ultraman ultramanRecord = ultraman.restoreRecord(1);ultraman.exit();}
}

運(yùn)行截圖如下:

運(yùn)行截圖

http://www.risenshineclean.com/news/11005.html

相關(guān)文章:

  • 內(nèi)容相同的 網(wǎng)站網(wǎng)絡(luò)軟營銷
  • WordPress一鍵安裝安全東莞百度seo推廣公司
  • 擁有服務(wù)器后如何做網(wǎng)站廣告推廣軟件
  • 什么網(wǎng)站比較少人做國家市場監(jiān)督管理總局官網(wǎng)
  • 品牌設(shè)計(jì)公司哪里seo流量排行榜神器
  • 綠色資源網(wǎng)汕頭seo網(wǎng)站建設(shè)
  • 網(wǎng)站備案幕布尺寸網(wǎng)站seo快速
  • 男女主網(wǎng)站上做的popo網(wǎng)站建設(shè)優(yōu)化
  • 鶴崗北京網(wǎng)站建設(shè)谷歌搜索引擎怎么才能用
  • 廈門同安區(qū)建設(shè)局網(wǎng)站軟文營銷常用的方式是什么
  • 重慶網(wǎng)站有哪些太原百度快速優(yōu)化
  • 深圳營銷型網(wǎng)頁設(shè)計(jì)公司鄭州seo外包v1
  • 手機(jī)網(wǎng)站設(shè)計(jì)模板營銷推廣方法有哪些
  • 深圳網(wǎng)站公司注冊seo網(wǎng)站外鏈工具
  • 網(wǎng)站建設(shè)優(yōu)化網(wǎng)站運(yùn)營推廣方式
  • 智慧建設(shè)網(wǎng)站衡陽seo排名
  • 軟件商店下載電腦版seo實(shí)戰(zhàn)密碼電子版
  • 做網(wǎng)站建設(shè)的上市公司有哪些谷歌獨(dú)立站seo
  • 網(wǎng)站類的知識(shí)網(wǎng)絡(luò)營銷文案策劃都有哪些
  • 寫作網(wǎng)站哪個(gè)最好百度營稍
  • 做電力項(xiàng)目信息的網(wǎng)站google國際版入口
  • 做網(wǎng)站 接活廣告公司主要做什么
  • 學(xué)院做網(wǎng)站的意義收錄網(wǎng)站有哪些
  • 網(wǎng)站開發(fā)網(wǎng)站設(shè)計(jì)制作學(xué)電腦培訓(xùn)班
  • wordpress在線郵箱廣州seo公司官網(wǎng)
  • 柳州網(wǎng)站建設(shè)公高端企業(yè)建站公司
  • wordpress刪除版權(quán)信息晉中網(wǎng)站seo
  • 學(xué)校網(wǎng)站建設(shè)的作用百度推廣關(guān)鍵詞和創(chuàng)意
  • iis7如何部署網(wǎng)站網(wǎng)絡(luò)推廣與推廣
  • 如何制作wordpress網(wǎng)站地圖網(wǎng)站seo好學(xué)嗎