这期内容当中小编将会给大家带来有关怎么在php中应用代理模式争霸游戏案例】,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站制作、成都网站建设、外贸营销网站建设、海晏网络推广、小程序定制开发、海晏网络营销、海晏企业策划、海晏品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们大的嘉奖;成都创新互联为所有大学生创业者提供海晏建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com代理(Proxy)模式示例:
为了方便,假设客户机已经通过远程包含或其他方法获取了主机上的php代码,它的代码如下:
<?php //客户机和主机操作数据时共同要实现的借口 interface iDataProcess { //获取数据的方法,$ID表示玩家的ID,$dataName表示获取的数据的名称 public function getData($ID, $dataName); //改变数据的方法,$ID表示玩家的ID,$dataName表示要改变的数据的名称,$dataValue表示改变后的数据的值 public function updateData($ID, $dataName, $dataValue); } //主机操作数据的类 class DataProcess implements iDataProcess { // 获取数据的方法,$ID表示玩家的ID,$dataName表示获取的数据的名称 public function getData($ID, $dataName) { //操作数据库之类的代码 } //改变数据的方法,$ID表示玩家的ID,$dataName表示要改变的数据的名称,$dataValue表示改变后的数据的值 public function updateData($ID, $dataName, $dataValue) { //操作数据库之类的代码 } } //客户机操作数据的类,也就是代理类 class ProxyDataProcess implements iDataProcess { //主机操作数据的对象 private $dataProcess; //构造函数 public function __construct() { $this->dataProcess = new DataProcess(); } // 获取数据的方法,$ID表示玩家的ID,$dataName表示获取的数据的名称 public function getData($ID, $dataName) { //判断是否直接向主机请求 switch ($dataName) { //如果查询水晶矿 case 'ore': //直接从客户机保存的数据读取,详细代码略过 break; //如果查询气矿 case 'gas': //直接从客户机保存的数据读取,详细代码略过 break; default: $this->dataProcess->getData($ID, $dataName); break; } } //改变数据的方法,$ID表示玩家的ID,$dataName表示要改变的数据的名称,$dataValue表示改变后的数据的值 public function updateData($ID, $dataName, $dataValue) { //和读取的思路类似,如果是水晶矿或气矿,就先写入客户机的数据存储,再告诉主机修改 } } //新建一个客户机处理数据的对象 $proxyDataProcess = new ProxyDataProcess(); //假如显示本玩家自己的气矿剩余数量 $proxyDataProcess->getData(3, 'gas'); ?>
用途总结:代理模式可以将让客户操作一个代理的类,进行一些降低资源消耗的工作,也可以完成比如权限验证的工作。
实现总结:需要一个接口来规定实际和代理操作类都必须实现的方法,比如上面iDataProcess,另外就是实际处理的类,比如上面DataProcess,以及让客户使用的代理操作类,比如上面的ProxyDataProcess。
上述就是小编为大家分享的怎么在php中应用代理模式争霸游戏案例】了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。
分享名称:怎么在php中应用代理模式争霸游戏案例】-创新互联
转载来于:https://www.cdcxhl.com/article10/deicdo.html
成都网站建设公司_创新互联,为您提供云服务器、静态网站、网站建设、搜索引擎优化、外贸建站、服务器托管
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联