网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.工欲善其事必先利其器 Java开发工.
.Eclips使用秘技(绝对经典).
.Java操作二维数组实例.
.JBuilder2005 Servlet开发之自启.
.浅析Java中Data类的应用技术.
.QuickTime for Java&n.
.Java和因特网.
.PHP调用java类的两种方法.
.一个纽约女技术员的JDO经验.
.用java实现print screen,读取位.
.关于Java语言开发编程中JDBC的介.
.用J2ME为手机DIY一个顶牛牛游戏.
.Java的多线程-实现多线程及线程的.
.Java网络编程之传输控制协议(二).
.在Java applet中如何显示另外一个.
.Java下的框架编程之cglib的应用.
.Java基础入门: 关于Java&nb.
.Struts模块化编程教程(三).
.软件开发详解:从Continuation说.
.JAVA数组和JAV集合类的操作.

爪哇语言结构性模式之变压器模式介绍

发表日期:2008-1-5


什么是结构性模式

  结构性模式描述类和对象怎样结合在一起成为较大的结构。 结构性模式描述两种不同的东西:类与类的实例。根据它们所描述的东西的不同, 结构性模式可以分为类结构模式实例结构模式两种。

  类结构模式使用继续(inheritance)来把类,接口等组合在一起,形成更大的结构。 当一个类从父类继续,并实现某接口时,这个新的类就把父类的结构和接口的结构结合起来。 类结构模式是静态的。一个类结构模式的典型的例子,就是类形式的变压器模式。

  实例结构模式描述各种不同类型的把对象组合在一起,实现新的功能的方法。实例结构模式是动态的。 一个典型的实例结构模式,就是代理人模式,代理人模式将在以后介绍。其它的例子包括后面将要介绍的复合模式, 飞行重量模式,装饰模式,以及实例形式的变压器模式等。

  有一些模式会有类结构模式的形式和实例结构模式的形式两种,成为以上两种形式的结构模式的极好注解。 本节要介绍的变压器模式就是这样,它有类形式和实例形式两种。

  变压器模式的介绍

  变压器模式把一个类的接口变换成客户端所期待的另一种接口。变压器模式使原本无法在一起工作的两个类能够在一起工作。 如前所述,变压器模式是关于类结构的结构性模式,因而是静态的模式。

  这很象变压器(Adapter)---变压器把一种电压变换成另一种电压。当我把美国的电器拿回中国大陆去用的时候, 我就面临电压不同的问题。美国的生活用电压是110伏,而中国的电压是220伏。我假如要在中国大陆使用我在美国使用的电器, 我就必须有一个能把220伏电压转换成110伏电压的变压器。而这正象是本模式所做的事,因此此模式被称为变压器模式。

  读者可能也会想到,Adapter在中文也可翻译为转换器(适配器)。实际上,转换器(适配器)也是一个合适的名字。仍用电器作例子, 美国的电器的插头一般是三相的,即除了阳极,阴极外,还有一个地极。中国大陆的建筑物内的电源插座一般只有两极,没有地极。 这时候,即便电器的确可以接受220伏电压,电源插座和插头不匹配,也使电器无法使用。 一个三相到两相的转换器(适配器)就能解决这个问题。因此此模式也可被称为转换器(适配器)模式。

  同时,这种做法也很象包装过程,被包装的物体的真实样子被包装所掩盖和改变,因此有人把这种模式叫做包装(Wrapper)模式。事实上, 我们经常写很多这样的wrapper类,把已有的一些类包裹起来,使之能有满足需要的接口。

  变压器模式有类形式和实例形式两种不同的形式。进入讨论组讨论。

  类形式的变压器模式的定义

  类形式的变压器模式的类图定义如下。


  在图1可以看出,模式所涉及的成员有:
  • 目标(Target)。这就是我们所期待得到的接口。注重,由于这里讨论的是类变压器模式,因此目标不可以是类。

  • 源(Adaptee)。现有需要适配的接口。

  • 变压器(Adapter)。变压器类是本模式的核心。变压器把源接口转换成目标接口。显然,这一角色不可以是接口, 而必须是实类。

  本模式的示范代码如下:

package com.Javapatterns.adapter.classAdapter;
public interface Target
{
    /**
     * Class Adaptee contains operation sampleOperation1.
     */
    void sampleOperation1();
    /**
     * Class Adaptee doesn't contain operation sampleOperation2.
     */
    void sampleOperation2();
}
代码清单1. Target的源代码。

package com.javapatterns.adapter.classAdapter;
public class Adaptee
{
    public void sampleOperation1(){}
}
代码清单2. Adaptee的源代码。

package com.javapatterns.adapter.classAdapter;
public class Adapter extends Adaptee implements Target
{
    /**
     * Class Adaptee doesn't contain operation sampleOperation2.
     */
    public void sampleOperation2()
    {
        // Write your code here
    }
}


上一篇:在Web应用中动态创建PDF文件 人气:967
下一篇:Eclipse上的Tomcat插件安装和调试 人气:818
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐