国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Adapter在J2SE事件處理中的應用

2019-11-18 13:48:19
字體:
來源:轉載
供稿:網友

  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模式。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 凤阳县| 扶风县| 嘉兴市| 贵州省| 岑溪市| 通城县| 高邮市| 伊春市| 鹤庆县| 永济市| 西华县| 丽江市| 晋城| 郓城县| 惠州市| 通海县| 贡嘎县| 忻城县| 八宿县| 灵寿县| 绥中县| 抚宁县| 仪陇县| 瑞昌市| 杭锦后旗| 辽中县| 榕江县| 万州区| 尚义县| 佛山市| 措勤县| 五峰| 卢湾区| 潮州市| 辰溪县| 肥东县| 米林县| 阿勒泰市| 咸宁市| 乌兰县| 昌吉市|