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

沈阳做网站优化的公司哪家好wordpress 耗时

沈阳做网站优化的公司哪家好,wordpress 耗时,重庆优化网站排名,网站建站的技术解决方案1 /*2 接口:提供一种说明一个对象应该有哪些方法的手段3 js中有三种方式实现接口:4 1 注释描述接口5 2 属性检测接口6 3 鸭式辨型接口7 */8 9 /*10 1 注释描述接口#xff1a; 不推荐11 优点#xff1a; 利用注解#xff0c;给出参考12 缺点#x…    1 /*2 接口:提供一种说明一个对象应该有哪些方法的手段3 js中有三种方式实现接口:4 1 注释描述接口5 2 属性检测接口6 3 鸭式辨型接口7 */8 9 /*10 1 注释描述接口 不推荐11 优点 利用注解给出参考12 缺点纯文档约束是一个假接口13 程序不能检查实现接口对象是否实现所有接口方法14 */15 16 /**17 * interface Composite{18 * function a();19 * function b();20 * }21 */22 // CompositeImpl implements Composite23 var CompositeImpl function(){24 //业务逻辑25 };26 CompositeImpl.prototype.a function(){27 //业务逻辑28 };29 CompositeImpl.prototype.b function(){30 //业务逻辑31 };32 33 34 35 36 37 38 39 /*40 2 属性检测接口41 优点能够检测实现哪些接口42 缺点没有完全脱离文档43 不能检测是否实现每个接口里的所有方法44 */45 /**46 * interface Composite{47 * function a();48 * }49 * 50 * interface FormItem(){51 * function b();52 * }53 */54 // CompositeImpl implements Composite,FormItem55 var interfacesImpl function(){56 //在实现类内部用一个数组保存要实现的方法名57 //通常这个属性名是团队中规定好的58 this.implementsInterfaces [Composite,FormItem];59 };60 CompositeImpl.prototype.a function(){61 //业务逻辑62 };63 CompositeImpl.prototype.b function(){64 //业务逻辑65 };66 67 //专门为这个实现对象写一个检测函数传入实例对象用于检查实力对象是否实现了所有接口68 function checkImplements(obj){69 //调用检查方法 obj是否实现两个接口如果没有都实现则抛出异常70 if(!isImplements(obj,Composite,FormItem)){71 throw new Error(接口没有全部实现);72 }73 //接收一个参数obj是要检查的对象74 function isImplements(obj){75 //arguments对象能够获取实际传入函数的所有参数的数组76 //传入的第0个参数是要检查的对象所以从1开始检查77 for(var i 1; i arguments.length ; i){78 //接收接口中每个接口的名字79 var interfaceName arguments[i];80 //一个标记是否实现这个接口默认没有81 var foundFlag false;82 //循环查询传入实例对象的实现接口数组 以检查是否全部实现83 for(var j 0 ;j obj.implementsInterfaces.length;j){84 //如果 实现了这个接口 就修改标记跳出循环85 if(obj.implementsInterfaces[j]interfaceName){86 foundFlag true;87 break;88 }89 }90 //如果遍历实现接口数组之后没找到 就返回false91 if(!foundFlag){92 return false;93 }94 }95 //如果都找到了 返回true96 return true;97 }98 }99 100 //使用实力对象并检测 101 var o new interfacesImpl(); 102 checkImplements(o); //不会抛出异常 因为正确实现了两个接口 103 //如果在写interfacesImpl内的implementsInterfaces列表的时候少写了那么就会在检查函数中抛出异常 104 105 106 107 108 /* 109 3 鸭式辨型法目前开发中使用的方式 110 实现思想 111 112 */ 113 114 //1 接口类 Class Interface 115 /** 116 * 接口类需要的参数 117 * 1 接口的名字 118 * 2 要实现方法名称的数组 119 */ 120 var Interface function( name , methods ){ 121 //判断参数个数 122 if(arguments.length!2){ 123 throw new Error(接口构造器参数必须是两个); 124 } 125 this.name name; 126 this.methods []; 127 for(var i 0;imethods.length;i){ 128 if( typeof methods[i] ! string ){ 129 throw new Error(接口实现的函数名称必须是字符串); 130 } 131 this.methods.push(methods[i]); 132 } 133 134 }; 135 //2 准备工作 136 // 2.1 实例化接口对象 传入接口名 和 要实现的方法数组 137 var CompositeInterface new Interface(CompositeInterface,[add,remove]); 138 var FormItemInterface new Interface(FormItemInterface,[update,select]); 139 140 // 2.2 实现接口的类 141 //CompositeImpl implementes CompositeInterface ,FormItemInterface 142 var CompositeImpl function(){ 143 144 }; 145 // 2.3 实现接口的方法 146 CompositeImpl.prototype.add function(obj){ 147 alert(add...); 148 }; 149 CompositeImpl.prototype.remove function(obj){ 150 alert(remove...); 151 }; 152 CompositeImpl.prototype.select function(obj){ 153 alert(select...); 154 }; 155 //在这里少实现一个方法 下面检测是否全部实现了接口方法 156 // CompositeImpl.prototype.update function(obj){ 157 // alert(update...); 158 // }; 159 // 实例化 实现接口的对象 160 var c new CompositeImpl(); 161 162 //3 检验接口里的方法是否全部实现 163 // 如果检验通过 继续执行;如果不通过抛出异常; 164 Interface.ensureImplements function(obj){ 165 // 如果接收到参数小于2 说明 传参出错了只传入一个参数没有传入实现的接口 166 if(arguments.length2){ 167 throw new Error(接口检查方法的参数必须多余两个); 168 } 169 //获得要见测的接口实现对象之后的参数 各个接口 170 for(var i 1,len arguments.length;ilen;i){ 171 var instanceInterface arguments[i]; //获取当前这个接口 172 //判断接收到的是不是接口的对象 如果不是 抛出异常 173 if( instanceInterface.constructor ! Interface){ 174 throw new Error(接口检测函数必须传入接口对象); 175 } 176 //检查实例化接口的对象是不是实现了接口里的所有方法 177 // 当前接口对象里的每一个方法 178 for(var j 0 ; jinstanceInterface.methods.length;j){ 179 var methodName instanceInterface.methods[j]; //接收到了字符串的方法名 180 //如果obj里面没有有methodName这个方法 或者有这个属性但是不是函数 就抛出异常 181 if(!obj[methodName] || typeof obj[methodName] ! function){ 182 throw new Error(接口方法 methodName 没有实现); 183 } 184 } 185 } 186 187 188 }; 189 //传入要检查的类和他要实现的所有接口对象 190 Interface.ensureImplements(c ,CompositeInterface ,FormItemInterface ); 191 c.add(); 192  转载于:https://www.cnblogs.com/Lin-Yi/p/7455521.html
http://www.zqtcl.cn/news/573463/

相关文章:

  • 各种购物网站大全上海市建设工程检测网
  • 网站推广沈阳php网站开发接口开发
  • 莱芜 做网站 公司官网开发
  • tomcat做网站做自媒体查找素材的网站
  • 信阳建设企业网站公司软件开发平台公司
  • 营销型网站建设营销型设计家官网视频
  • 部门网站建设目的加猛挣钱免费做网站软件
  • 洛阳制作网站哪家好wordpress是英文
  • dw里面怎么做网站轮播图网站建设分为多少模块
  • 国外互动网站wordpress设置用户头像
  • 重庆手机网站推广定做net创建网站之后怎么做
  • 网站仿静态做it的兼职网站
  • 建站用wordpress好吗hui怎么做网站
  • 从用户旅程角度做网站分析做网站还是做淘宝
  • 妇科医院网站优化服务商品牌型网站设计推荐
  • 西安网站制作排名网站建设对企业的帮助
  • lamp网站开发 pdf纯html5 网站
  • 白云区同和网站建设购物网站怎么建立
  • 公司制作网站需要espcms易思企业网站管理系统
  • 开发一个网站需要哪些步骤广西建设主管部门网站
  • 网站建设培训西安制作微信小程序开发
  • delphi 做直播网站wordpress 商务
  • 各大网站的软文怎么做wordpress教程菜鸟教程
  • 破解php网站后台账号密码wordpress二维码 插件下载
  • 石家庄哪里可以做网站做网站用的pm是啥
  • 租服务器网站有趣的设计网站
  • 建设部监理网站官网信阳市两学一做网站
  • 网站被攻击会影响收录么微信网站 影楼
  • 社区网站开发search搜索引擎
  • 章丘做网站哪家强原阳网站建设