|
Web开发过程中所使用的各种浏览器API,其本身组合的也并不足够合理。有时候为了执行某项操作,我们需要连续操作很多接口。而实际上,在大多数情况下,我们都没必要这么DRY(Do Repeat Yourself).
你可以看到,其实上面两种情况就分别对应于设计模式中的Adapter和Façade两种模式的需求。那么,下面让我们看看如何在实际的代码中应用上述两种模式解决问题?
四、 如何应用Adapter和Facade模式?
在《Ajax in action》中,同样有一段代码,体现了这样的需求。我把它修改了一下,大家看看,能否从中找出Adapter和Facade模式的影子?
CGIAJAX.util["STATICS"] = {};
CGIAJAX.util.STATICS.READY_STATE_UNINITIALIZED=0;//constant
CGIAJAX.util.STATICS.READY_STATE_LOADING=1;
CGIAJAX.util.STATICS.READY_STATE_LOADED=2;
CGIAJAX.util.STATICS.READY_STATE_INTERACTIVE=3;
CGIAJAX.util.STATICS.READY_STATE_COMPLETE=4;
CGIAJAX.util.ContentLoader = function(url, onload, method, msgBody, onerror)//constructor, contains all attributes
{
this.url=url;
this.onload=onload;
this.method = (method) ? method : "GET";//default value of method is GET
this.msgBody = (msgBody) ? msgBody : null;//default value of message body send to server
this.onerror=(onerror) ? onerror : this.defaultError;//default method to handle error
this.req=null;
}
//contains all method
CGIAJAX.util.ContentLoader.prototype=
{
loadXMLDoc:function()//send request to server to get response
{
if (window.XMLHttpRequest)
上一页 [1] [2] [3] [4] [5] [6] 下一页 [Web开发]AJAX来判断dedecms用户是否登录 [网页制作]新手解读:认识XML,AJAX,SNS,Tag [网页制作]从GMail认识的W3C网页标准和Ajax [Web开发]利用PHP+JavaScript打造AJAX搜索窗 [Web开发]基于AJAX技术提高搜索引擎排名 [Web开发]XMLHTTP异步获取返回值的代码超时测试(AJAX) [Web开发]整理Web开发-Ajax社区中有关Ajax的资料 [Web开发]【编程】Web 交互 - AJAX 不是什么新技术 [Web开发]掌握 Ajax,第 1 部分: Ajax 简介 [Web开发]Backbase框架:专业级AJAX开发框架
|