PHP头条
热点:

phpFlyweight享元模式使用例子


星际的战斗达到后面,地图里面的部队很多,如果我们把每个兵的图像动画和属性值作为一个对象的话,系统的内存里会消耗极大.我们在玩的时候会发现,因为星际里面的种族只有三个,其实兵种只有几十个.

虽然每个独立的士兵剩余的血不同,但是同一兵种的图像动画是一样的,即使不同的玩家,只是不同的颜色,比如每个人族的机枪兵.而且大多数玩家只用到常用的一些兵种,很多时候不会制造所有的兵种.

待解决的问题:把把兵种的图像动画共享.

思路:我们把每个兵种的图像动画建模作为对象,放入内存共享,一旦有某个画面用到这个兵种,只要把共享的图像动画拿出来,更改颜色就可以了.

享元(Flyweight)模式示例,代码如下:

getFlyweight("Marine");
$marine->drawMarine($status);
?>

用途总结:享元模式可以将需要共享的资源集中起来,统一管理,防止重复消耗.

实现总结:需要一个享元工厂管理共享的资源,比如上面的FlyweightFactory,把所有共享的资源的生产全部交给个享元工厂.

文章地址:

转载随意^^请带上本文地址!

www.phpzy.comtrue/php/38120.htmlTechArticlephpFlyweight享元模式使用例子 星际的战斗达到后面,地图里面的部队很多,如果我们把每个兵的图像动画和属性值作为一个对象的话,系统的内存里会消耗极大.我们在玩的时候会发现,因为星...

相关文章

PHP之友评论

今天推荐