国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - php設計模式之備忘模式分析【星際爭霸游戲案例】

php設計模式之備忘模式分析【星際爭霸游戲案例】

2020-06-06 15:47DavidHHuan PHP教程

這篇文章主要介紹了php設計模式之備忘模式,結合星際爭霸游戲案例形式分析了PHP備忘模式相關原理、使用技巧與操作注意事項,需要的朋友可以參考下

本文實例講述了php設計模式之備忘模式。分享給大家供大家參考,具體如下:

我們在玩星際任務版或者單機與電腦對戰的時候,有時候會突然要離開游戲,或者在出兵前面,需要存儲一下游戲。

那么我們通過什么辦法來保存目前的信息呢?而且在任何時候,可以恢復保存的游戲呢?

待解決的問題:保存游戲的一切信息,如果恢復的時候完全還原。

思路:建立一個專門保存信息的類,讓他來處理這些事情,就像一本備忘錄。

為了簡單,我們這里用恢復一個玩家的信息來演示。

備忘(Memento)模式示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<?php
  //備忘類
  class Memento
  {
    //水晶礦
    public $ore;
 
    //氣礦
    public $gas;
 
    //玩家所有的部隊對象
    public $troop;
 
    //玩家所有的建筑對象
    public $building;
 
    //構造方法,參數為要保存的玩家的對象,這里強制參數的類型為Player類
    public function __construct(Player $player)
    {
      //保存這個玩家的水晶礦
      $this->ore = $player->ore;
 
      //保存這個玩家的氣礦
      $this->gas = $player->gas;
 
      //保存這個玩家所有的部隊對象
      $this->troop = $player->troop;
 
      //保存這個玩家所有的建筑對象
      $this->building = $player->building;
    }
  }
 
  //玩家的類
  class Player
  {
    //水晶礦
    public $ore;
 
    //氣礦
    public $gas;
 
    //玩家所有的部隊對象
    public $troop;
 
    //玩家所有的建筑對象
    public $building;
 
    //獲取這個玩家的備忘對象
    public function getMemento()
    {
      return new Memento($this);
    }
 
    //用這個玩家的備忘對象來恢復這個玩家,這里強制參數的類型為Memento類
    public function restore(Memento $m)
    {
      //水晶礦
      $this->ore = $m->ore;
 
      //氣礦
      $this->gas = $m->gas;
 
      //玩家所有的部隊對象
      $this->troop = $m->troop;
 
      //玩家所有的建筑對象
      $this->building = $m->building;
    }
  }
 
  //制造一個玩家
  $p1 = new Player();
 
  //假設他現在采了100水晶礦
  $p1->ore = 100;
 
  //我們先保存游戲,然后繼續玩游戲
  $m = $p1->getMemento();
 
  //假設他現在采了200水晶礦
  $p1->ore = 200;
 
  //我們現在載入原來保存的游戲
  $p1->restore($m);
 
  //輸出水晶礦,可以看到已經變成原來保存的狀態了
  echo $p1->ore;
?>

用途總結:備忘模式使得我們可以保存某一時刻為止的信息,然后在需要的時候,將需要的信息恢復,就像游戲的保存和載入歸檔一樣。

實現總結:需要一個備忘類來保存信息,被保存的類需要實現生成備忘對象的方法,以及調用備忘對象來恢復自己狀態的方法。

希望本文所述對大家PHP程序設計有所幫助。

原文鏈接:https://www.cnblogs.com/davidhhuan/p/4248190.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 九九综合九九 | 久草成人网| 久久精品国产v日韩v亚洲 | 男女18免费网站视频 | 黄色小视频免费 | 在线免费色视频 | 一区二区三区欧美在线 | 欧美成人黄色小视频 | 中文字幕亚洲综合 | 亚洲精品久久久久久国 | 亚洲最大的黄色网 | 国产综合精品一区二区三区 | 一区二区三区欧美在线 | 精品小视频 | 欧美一级久久久 | 国产成人在线电影 | 久久九九这里只有精品 | 黄色av网站在线观看 | 中文在线观看www | 国产精品久久久久久久福利院 | 色欧美片视频在线观看 | 欧美精品免费在线 | 欧美在线国产 | 日韩一区二区三区在线观看 | 久久精品国产99国产精品 | 国产一区二区三区在线免费看 | 国产精品国产 | 亚洲天堂一区二区 | 一本一道久久久a久久久精品91 | 欧美日韩综合精品 | 精品国产乱码久久久久久久 | 天堂色 | 国内精品久久久久久久影视红豆 | 国产精品视频在线观看 | 国产精品美女久久久久久久网站 | 欧美在线一区二区 | 一区二区三区在线 | 国产精品网站在线观看 | 国产一区二区三区不卡在线观看 | 亚洲电影免费 | 中文字幕乱码视频32 |