当前位置: 首页 > news >正文

澎湖县网站建设_网站建设公司_Oracle_seo优化

天津 企业网站建设,c 网站做微信支付功能,网站没有备案号,今天刚刚发布的新闻1、模式标准 模式名称#xff1a;适配器模式 模式分类#xff1a;结构型 模式意图#xff1a;适配器模式的意图是将一个类的接口转换成客户端期望的另一个接口。适配器模式使原本接口不兼容的类可以一起工作。 结构图#xff1a; 适用于#xff1a; 系统需要使用现有的…1、模式标准 模式名称适配器模式 模式分类结构型 模式意图适配器模式的意图是将一个类的接口转换成客户端期望的另一个接口。适配器模式使原本接口不兼容的类可以一起工作。 结构图 适用于 系统需要使用现有的类而这些类的接口不符合系统的需要。 适配器可以在不修改现有类的情况下提供一个兼容的接口。 想要构建一个可重用的类这个类可以与其他不相关的类或不可预见的类即那些接口可能不一定兼容的类协同工作。 需要一个统一的输出接口而输入端的类型不可预知。 2、分析与设计  需要统一输出接口在游戏开发中应该也有一些这里举的例子是通讯适配。比如一般的网络请求都是XMLHttpRequest进行的get与post的请求请求体是json,返回的是自己熟悉的{code:200,msg:成功,data:{}}格式但是我用tsrpc这个ts框架后请求体变成了tsrpc特有的Proto,且返回个格式变为了{isSucc:true,err:null,res:{}}我希望游戏框架里面请求方式是类似xhgame.net.post(/api/userInfo)无论我们如何换后端前端都是不用改。 3、开始打造 export abstract class IRequest {abstract get(url: string, reqData: any, callback: Function): voidabstract post(url: string, reqData: any, callback: Function): void }export class Http extends IRequest {public get(url: string, reqData: any, callback: Function) {url xhgame.config.game_host urlurl ?;for (var item in reqData) {url item reqData[item] ;}var xhr new XMLHttpRequest();xhr.onreadystatechange function () {if (xhr.readyState 4) {if (xhr.status 200 xhr.status 400) {var response xhr.responseText;if (response) {var responseJson JSON.parse(response);callback(responseJson);} else {console.log(返回数据不存在)callback(false);}} else {console.log(请求失败)callback(false);}}};xhr.open(GET, url, true);xhr.setRequestHeader(Content-Type, application/x-www-form-urlencoded);xhr.setRequestHeader(Authorization, Bearer xhgame.storage.origin_get(token));xhr.send();}public post(url: string, reqData: any, callback: Function) {url xhgame.config.game_host url//1.拼接请求参数var param ;for (var item in reqData) {param item reqData[item] ;}//2.发起请求var xhr new XMLHttpRequest();xhr.onreadystatechange function () {if (xhr.readyState 4) {if (xhr.status 200 xhr.status 400) {var response xhr.responseText;if (response) {var responseJson JSON.parse(response);callback(responseJson);} else {console.log(返回数据不存在)callback(false);}} else {console.log(请求失败)callback(false);}}};xhr.open(POST, url, true);xhr.setRequestHeader(Content-Type, application/x-www-form-urlencoded);xhr.setRequestHeader(Authorization, Bearer xhgame.storage.origin_get(token));xhr.send(param);//reqData为字符串形式 keyvalue} } import { Http } from ../../../xhgame-framework/net/Http; import { HttpClient as HttpClient_Miniapp, WsClient as WsClient_Miniapp } from tsrpc-miniapp; import { HttpClient as HttpClient_Browser, WsClient as WsClient_Browser } from tsrpc-browser; import { serviceProto as ServiceProtoGate, ServiceType as ServiceTypeGate } from ../../tsshared/protocols/ServiceProtoGate;import { PREVIEW } from cc/env;export enum TSPRC_API {GetOpenid GetOpenid } // 设计模式6(适配器) export class TsrpcAdapterHttp extends Http {tsrpc: HttpClient_MiniappServiceTypeGate | HttpClient_BrowserServiceTypeGate nullconstructor() {super()this.tsrpc new (PREVIEW ? HttpClient_Browser : HttpClient_Miniapp)(ServiceProtoGate, {server: http://127.0.0.1:8010,json: true,logger: console,});}async get(url: TSPRC_API, reqData: any, callback: Function) {let res await this.tsrpc.callApi(url, reqData)callback(res)}async post(url: TSPRC_API, reqData: any, callback: Function) {let res await this.tsrpc.callApi(url, reqData)callback(res)}} 4、开始使用  在用构建器构建游戏时 setNet(): IGameBuilder {//return new Http()this.net new TsrpcAdapterHttp()return this;} 有了适配器请求方式都统一称如下方式了 xhgame.net.post(api,data) 完成
http://www.ihoyoo.com/news/103990.html

相关文章:

  • 做内衣的网站中国flash网站模板
  • 黄页网站 php广州网站运营专业乐云seo
  • 如何免费搭建网站源码vue快速搭建网站
  • 外贸企业网站红色风格专业app定制开发公司
  • 哈尔滨免费模板建站1688网站登录
  • 资料查询网站建设新乡网站开发的公司
  • 装修 设计 网站自己用电脑做虚拟机怎么建网站
  • 收费网站空间中国建设银采购发文网站
  • cpa项目怎么做必须有网站么广西建设网官方证件信息查询
  • 怎么在网站注册账号广东一站式网站建设推荐
  • 苏州网站建设苏州检察机关门户网站建设工作自查报告
  • 类似交费网站开发建站宝盒的设置
  • 手机网站开发周期dedecms 招聘网站
  • 类似凡科互动的网站新媒体平台有哪些?
  • ftp 迁移 网站郑州最好的人流医院
  • 东莞网站推广推广软件建设工程施工
  • 深圳高端网站建设网络服务商怎么找
  • 网站建设和优化内容最重要培训机构营销方案
  • 成都网站建设外包公司排名厦门人才网唯一官网登录
  • 外贸英文商城网站建设中国信用网站建设的重要性
  • wordpress验证google站长360搜索网站提交入口
  • 外网建筑设计网站怎么样下载网页上的视频
  • 如何登录百度站长平台游戏开发培训班
  • 网站留言怎么做asp.net网站开发流程
  • 推荐常州网站推广做外贸有哪些网站平台
  • 北京服饰网站建设网站开发定制合同
  • 用wordpress做视频网站建站cms源码
  • 小说网站开发需求分析精湛的赣州网站建设
  • 手把手教你用动易做网站wordpress 设置静态内容缓存时间
  • 贝壳企业网站管理系统高端网站开发培训价格