转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
adapter和facade模式在Ajax中的应用         ★★★★

adapter和facade模式在Ajax中的应用

作者:闵涛 文章来源:闵涛的学习笔记 点击数:4523 更新时间:2009/4/23 11:30:46

一、     起因

在看《Ajax in action》的时候,看到它在介绍Adapter和Facade两种模式。由于目前Web开发的特色,特别是客户端Js脚本的开发,需要面对很多的变化和跨平台的挑战,所以,如果应用Adapter和Facade模式,将会非常有益于提高我们软件的可维护性,以及降低总体开发成本。

 

二、     什么是Adapter和Facade模式

1、          Adapter模式

1.1、定义:

The Adapter Pattern converts the interface of a class into another interface the clients expect. Adapter lets classes work together that couldn''''t otherwise because of incompatible interfaces.

1.2、解释:

   Adapter模式所要解决的问题,就是接口不一致的问题。在实际的应用程序中,有的时候客户端(这里指调用方)想要调用的接口与实际上服务端(这里指被调用方)所提供的接口不一致。出现这种情况,我们可能会有两种选择,一种是修改调用方或者被调用方的接口,使之互相适应。另一种就是在调用方和被调用方之间加入一个Adapter,用其连接调用方和被调用方。

   在Adapter模式里,Adapter所起的作用,就是一个接口适配器。一个Adapter类会实现(implements)调用方所期待的接口,并且在类中通过委派(delegate)来调用被调用方,从而实现两种不同接口的连接。

1.3、分类:

Adapter模式分为两种实现方式,一种是对象适配器(Object Adapters)和类适配器(Class Adapters)。其中对象适配器(Object Adapters)通过组合(composition)实现,而类适配器(Class Adapters)通过多继承实现。

1.4、关键点:

模式的关键点在于其意图。Adapter模式的意图很明显,就是为了使两个彼此不兼容的接口兼容,使一个本来并不是调用方所期待的接口看起来跟所期待的一样。

在《Head.First.Design.Patterns》这本书里,有一句话可以非常完美并且有趣的描述Adapter模式:

If it walks like a duck and quacks like a duck, then it might be a turkey wrapped with a duck adapter...

 

2、          Facade模式

2.1、定义:

   The Facade Pattern provides a unified interface to a set of interfaces in subsystem. Facade defines a higher-level interface that makes the subsystem easier to use.

2.2、解释:

Facade模式的意图也是非常明显。有时候,我们的客户端(调用方)所调用的子系统(subsystem,被调用方)过于复杂。通常,调用方需要连续调用被调用方的N个接口才能完成某种特定的任务。每次调用方重复调用操作都非常繁琐,容易出错,所以本着DRY(Dont Repeat Yourself)的原则,我们需要提炼出一些经常用到的操作组合成一个接口。这样,每次调用方执行该功能时,仅需要调用该Facade接口,便可以轻松执行某项特定任务。

2.3、作用

Facade模式的作用主要有两点:

1、              为一个太复杂的子系统(subsystem)提供一个统一的、简单的接口共调用方使用。通常需要DRY的接口都是使用率非常高,并且比较复杂的接口。将该接口提取出来,有益于简化工作,并且统一接口名称。

2、              降低系统的耦合度。一批事物的变化率远大于一个事物。应用Facade模式的情景,一般是由于子系统太复杂。当调用方需要执行某些任务时,需要执行一连串操作。而随着子系统的升级,这一连串操作的变化的可能性是非常大的。但是,不管子系统如何变,这一连串操作所提供的功能或者是意义永远不变。所以,Facade模式有利于降低耦合度。

2.4、关键点:

Facade模式的关键点在于,引入Facade模式主要是为了简化和统一接口。Facade模式的接口一般是子系统的一个“快捷方式”。调用方如果还有其他的复杂功能的话,依然可以直接调用子系统的其他接口。

3、          Adapter和Facade模式的区别

模式的区别就在于,要领会其根本的意图。这里有一句话,描述了Adapter和Facade模式以及Decorator模式(这里可以先不管decorator模式)。

An adapter wraps an object to change its interface, a decorator wraps an object to add new behaviors and responsibilities, and a facade "wraps" a set of objects to simplify.

 

三、     Web开发所面临的问题

Ajax时代的Web开发,有一个共同的特点。由于此时的浏览器端应用再也不是传统的简单页面,而变成了复杂的JavaScript客户端应用程序。所以,随着代码量的上升,要求我们用更加合乎软工的方式去看待Ajax应用程序。如果在此时能够引入各种OO原则及模式,将会提高Ajax应用程序的整体质量。

目前在浏览器端进行JavaScript开发时,主要会面临这么两种问题:

1、              目前的Web开发还比较混乱。各种浏览器对W3C标准的支持都有问题,并不统一。进行Web开发时,尽管我们一直提倡基于Web标准进行开发,但有时我们往往有些力不从心。

2、

[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开发框架
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台