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

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

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

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

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

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

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

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

星際的戰斗達到后面,地圖里面的部隊很多,如果我們把每個兵的圖像動畫和屬性值作為一個對象的話,系統的內存里會消耗極大。

我們在玩的時候會發現,因為星際里面的種族只有三個,其實兵種只有幾十個。
雖然每個獨立的士兵剩余的血不同,但是同一兵種的圖像動畫是一樣的,即使不同的玩家,只是不同的顏色。比如每個人族的機槍兵。

而且大多數玩家只用到常用的一些兵種,很多時候不會制造所有的兵種。

待解決的問題:把把兵種的圖像動畫共享。

思路:我們把每個兵種的圖像動畫建模作為對象,放入內存共享。一旦有某個畫面用到這個兵種,只要把共享的圖像動畫拿出來,更改顏色就可以了。

享元(Flyweight)模式示例:

?
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
<?php
 //機槍兵享元
 class MarineFlyweight
 {
  //繪制機槍兵的圖像動畫,參數為狀態,比如屬于哪一個玩家
  public function drawMarine($state)
  {
   //繪制機槍兵
  }
 }
 
 //享元工廠
 class FlyweightFactory
 {
  //享元數組,用于存放多個享元
  private $flyweights;
 
  //獲取享元的方法
  public function getFlyweight($name)
  {
   if (!isset($flyweights[$name]))
   {
    $flyweights[$name] = new $name."Flyweight";
   }
   return $flyweights[$name];
  }
 }
 
 //初始化享元工廠
 $flyweightFactory = new FlyweightFactory();
 
 //當我們需要繪制一個機槍兵的時候,同時傳遞一個狀態數組,里面包含剩余的血等等
 $marine = $flyweightFactory->getFlyweight("Marine");
 $marine->drawMarine($status);
?>

用途總結:享元模式可以將需要共享的資源集中起來,統一管理,防止重復消耗。

實現總結:需要一個享元工廠管理共享的資源,比如上面的FlyweightFactory。把所有共享的資源的生產全部交給個享元工廠。

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: www.久久| 精品1区2区| 成人久久久 | 国产一级黄色大片 | 免费看男女www网站入口在线 | 在线第一页| 999精品一区 | 99精品欧美一区二区三区综合在线 | 中文字幕亚洲国产 | 性激烈欧美三级在线播放狩猎 | 综合五月网 | 亚洲成人av免费观看 | 国产精品久久久久久av下载网址 | 精品国产乱码久久久久久影片 | 国产一区中文字幕 | 欧美日韩中文字幕 | 国产一区二区精品在线观看 | 国产精品久久久久白丝呻吟 | 99亚洲伊人久久精品影院 | 字幕网av | 亚洲在线视频 | 五月婷婷精品 | 国产色在线观看 | av免费观看网站 | 国产精品福利91 | 午夜av毛片 | av色综合| 久久久久久亚洲精品 | 久久综合久久综合久久综合 | 亚洲精品视频在线观看网站 | 久久久99久久久国产自输拍 | 日韩一区二区中文 | 羞羞免费视频网站 | 欧美午夜寂寞影院 | 日本精品中文字幕 | 国产精品欧美一区二区三区 | 精品日韩在线 | 一区二区中文字幕 | 日韩中文字幕在线观看视频 | 国产一区二区三区不卡在线观看 | 亚洲精品第一区在线观看 |