JAVA学习网首页 把生活查询网加入收藏 把JAVA学习网设为首页 联系方式
    Hi,JAVA学习
JAVA基础 设计模式 数据库 JavaBeans J2EE JavaDelphi 用户界面 综合文章  
Adapter模式在J2SE事件处理中的应用
时间:22/04/2007
作者:网络
来源:网络
小提示点这里把文章加入您的收藏夹,方便下次查看
设置文章字体大小:[ ]

  1.Adapter模式理论

  Adapter模式又称变压器模式,关于该模式的基本概念请参考其他书籍或资料;这里我们只粗略讨论该模式两大实现方法的区别:基于类的Adapter模式和基于对象的Adapter模式。

  基于类的Adapter模式的一般结构如下:Adaptee类为Adapter的父类,Adaptee类为适配源,适配目标(接口)也是Adapter的父类;基于类的Adapter模式比较适合应用于Adapter想修改Adaptee的部分方法的情况。基于对象的Adapter模式的一般结构如下:Adaptee类对象为Adapter所依赖,适配目标(接口)是Adapter的父类;基于对象的Adapter模式比较适合应用于Adapter想为Adaptee添加新的方法的情况。但在Adaptee类的方法与Adapter类的方法不同名而实现相同功能的情况下,我们一般也使用基于对象的Adapter模式,在J2SE事件处理中,我们就大量使用了基于对象的Adapter模式。

  2.J2SE中的事件处理

  J2SE中的事件处理代码示例如下:

  public class WebFormDesigner extends JFrame {

     void jbInit() throws Exception {

   text.addActionListener(new WebFormDesigner_text_actionAdapter(this));

  }

  void text_actionPerformed(ActionEvent e) {

    TextDialog createText = new TextDialog();

    createText.setVisible(true);

    createText.setTitle("TEXT");

    createText.setBounds(100, 100, 500, 300);



    createText.setModal(true);

    createText.show();


    }

   }

  class WebFormDesigner_text_actionAdapter implements java.awt.event.ActionListener {

    WebFormDesigner adaptee;

    WebFormDesigner_text_actionAdapter(WebFormDesigner adaptee) {

      this.adaptee = adaptee;

    }

    public void actionPerformed(ActionEvent e) {

      adaptee.text_actionPerformed(e);

    }

  }

  在实际编程时,text_actionPerformed方法由程序员自己实现(弹出新的对话框),而WebFormDesigner_text_actionAdapter类是由开发环境依据基于对象的Adapter模式自动生成的。

  3.Adapter模式与代码分析


  由上面的分析可见,WebFormDesigner在本例中是Adaptee, WebFormDesigner_text_actionAdapter在本例中是Adapter, java.awt.event.ActionListener在本例中是适配目标。

  适配目标为一接口,代码如下:

  public interface ActionListener extends EventListener {

      /**


       * Invoked when an action occurs.

       */

      public void actionPerformed(ActionEvent e);

  }

  适配目标中只有一个方法:actionPerformed()。由于WebFormDesigner_text_actionAdapter 实现了java.awt.event.ActionListener,所以要求实现actionPerformed()方法。

  WebFormDesigner_text_actionAdapter实现actionPerformed()方法是引用了WebFormDesigner这个adaptee而完成的。从代码中可以看出,WebFormDesigner是WebFormDesigner_text_actionAdapter的方法的参数,所以WebFormDesigner_text_actionAdapter依赖WebFormDesigner。

  Adaptee类(WebFormDesigner)的方法(text_actionPerformed)与Adapter类(WebFormDesigner_text_actionAdapte)的方法(actionPerformed)不同名而实现相同功能,这就是我们上面分析的基于对象的Adapter模式。

上一篇:状态模式之星际应用

下一篇:JDK Observer设计模式之研究

  • java中访问数据库操作
  • Java下的Framework编写--泛型的应用
  • equals(Object) 与 == 的区别
  • java指南之使用图形:概览
  • 格式化消息(参数替换)
  • kodojdo指南(前两章)
  • WebWork基于正则表达式(regex)的输入验证
  • JVM(JAVA虚拟机介绍)
  • J2EE应用开发阶段划分
  • J2SE5.0实例---注释(annotation)
  • Java使用Oracle遇到的最大游标超出问题及其解决方法
  • 怎样制作自解压的jar文件
  • HP-AS JDBC连接Oracle配置
  • 跳棋程序源码
  • motorola手机中在主类中响应
  • Canvas及其支持的按键事件测试小例
  • 您的 Java 代码安全吗 — 还是暴露在外?
  • Thingking in Java--读书摘要--Chapter 6: Reusing classes
  • 返回】 【顶部】 【关闭
    Copyright © 2005-2010 www.594k.com All Rights Reserved.
    版权所有:JAVA学习网 备案序号:皖ICP备06004238号