javascript设计模式-适配器模式(8)
2017-12-25 15:11
453 查看
适配器模式可用在现有的接口和不兼容的类之间进行适配。使用这种模式的对象又叫做包装器(wrapper),因为他们是在用一个新的接口包装另一个对象。借助适配器可以处理一些类与API不匹配、不能一同使用的情况。适配器是要把一个接口转换为另一个接口,它并不会滤除某些功能,也不会简化接口
// 程序中:简单的适配器 var obj = { // 鼠标和键盘(圆口) str1:'111' , str2:'222' , str3:'333' }; // 适配器方法 function adapter(obj){ interfaceMethod(obj.str1,obj.st2,obj.st3); } // 新电脑 usb function interfaceMethod(x, y , z){ // 复杂的操作 }; // 企业开发中:javascript库(extjs , jquery , yui , prototype ... ded ...) // YAHOO // Prototype // YAHOO (我们用雅虎的框架,但是Prototype程序员依然可以用自己的风格来使用) //模拟:根据id 获得指定的dom元素 //Prototype $ function (不需要传递任何的形参:一个id 写一个参数 多个id 多个参数) function $(){ var elements = [] ; for(var i = 0 ; i < arguments.length; i++){ var element = arguments[i]; if(typeof element == 'string') element = document.getElementById(element); if(arguments.length ==1) return element ; elements.push(element); } return elements; } // YUI get function (传递了一个参数 :类型不是字符串 就是数组) var YAHOO = {}; YAHOO.get = function(el){ if(typeof el == 'string'){ return document.getElementById(el); } if(el instanceof Array){ var elements = [] ; for(var i = 0 ; i < el.length ; i++){ elements[elements.length] = YAHOO.get(el[i]); } return elements; } if(el){ return el ; } return null; }; YAHOO.get = YUIToPrototypeAdapter ; function YUIToPrototypeAdapter(){ //对于YUI开发人员来说 永远传递一个参数 if(arguments.length == 1){ var e = arguments[0]; return $.apply(window,e instanceof Array?e:[e]); } else { return $.apply(window ,arguments); } } window.onload = function(){ /* // prototype开发人员习惯的写法 var domarr = $('inp1','inp2'); alert(domarr); */ /* // YUI开发人员习惯的写法 var domarr = YAHOO.get(['inp1','inp2']); alert(domarr); */ // YUI 我是一个prototype 用项目经理的说法 var domarr = YAHOO.get(['inp1']); alert(domarr); };
相关文章推荐
- javascript设计模式-适配器模式
- JavaScript设计模式 Item9 --适配器模式Adapter
- Javascript设计模式理论与实战:适配器模式
- 9-JavaScript设计模式——适配器模式
- JavaScript设计模式经典之适配器模式
- JavaScript设计模式之适配器模式介绍
- javascript设计模式——适配器模式
- Javascript设计模式理论与实战:适配器模式
- 再起航,我的学习笔记之JavaScript设计模式12(适配器模式)
- 【读书笔记】读《JavaScript设计模式》之适配器模式
- JavaScript设计模式 Item9 --适配器模式Adapter111
- javascript设计模式-适配器模式
- Javascript设计模式-12-适配器模式
- JavaScript设计模式系列五:适配器模式
- JavaScript设计模式一(单例模式、门面模式、适配器模式)
- 《javascript设计模式》笔记之第十章 和 第十一章:门面模式和适配器模式
- JavaScript设计模式与开发实践 适配器模式
- 再起航,我的学习笔记之JavaScript设计模式12(适配器模式)
- javascript设计模式之Adapter模式【适配器模式】实现方法示例
- JavaScript设计模式 Item9 --适配器模式Adapter