您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

php Flyweight享元模式使用例子

2024/5/9 21:21:45发布13次查看
星际的战斗达到后面,地图里面的部队很多,如果我们把每个兵的图像动画和属性值作为一个对象的话,系统的内存里会消耗极大.我们在玩的时候会发现,因为星际里面的种族只有三个,其实兵种只有几十个.
虽然每个独立的士兵剩余的血不同,但是同一兵种的图像动画是一样的,即使不同的玩家,只是不同的颜色,比如每个人族的机枪兵.而且大多数玩家只用到常用的一些兵种,很多时候不会制造所有的兵种.
待解决的问题:把把兵种的图像动画共享.
思路:我们把每个兵种的图像动画建模作为对象,放入内存共享,一旦有某个画面用到这个兵种,只要把共享的图像动画拿出来,更改颜色就可以了.
享元(flyweight)模式示例,代码如下:
getflyweight(marine);$marine->drawmarine($status);?>
用途总结:享元模式可以将需要共享的资源集中起来,统一管理,防止重复消耗.
实现总结:需要一个享元工厂管理共享的资源,比如上面的flyweightfactory,把所有共享的资源的生产全部交给个享元工厂.
文章地址:
转载随意^^请带上本文地址!
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product