本站不再更新,歡迎光臨 java開發(fā)技術(shù)網(wǎng)
          隨筆-230  評論-230  文章-8  trackbacks-0

          1 定義:
          ???? 將兩個不兼容的類糾合在一起使用,屬于結(jié)構(gòu)型模式,需要有被適配者(Adaptee)和適配器(Adapor)兩個身份。
          2 為何使用:
          ??? 我們經(jīng)常需要將兩上沒有關(guān)系的類組合在一起使用,第一解決方案是修改各自類的接口,便如沒有源代碼,或者我們不愿意為一個應(yīng)用而修改接口怎么辦,就用Adapter創(chuàng)建混血的組合體。
          至于怎么用可以參考?《think in java》的“類再生”這一節(jié)所提到的兩個方式:組合(Composition)和繼承(inheritance)

          參考例子:
          package com.pdw.pattern;
          /**
          ?* 兩個不兼容的類糾合在一起使用,屬于結(jié)構(gòu)模型,需有被適配器(Adaptee)和適配器(Adaptor)兩個身份
          ?*
          ?* @author Administrator
          ?*
          ?*/

          //打方型
          class SquarePeg{
          ?public void insert(String str){
          ??System.out.println("打方型-->"+str);
          ?}
          }
          //打圓柱型
          class RoundPeg{
          ?public void insertIntohole(String msg){
          ??System.out.println("打圓柱型-->"+msg);
          ?}
          }

          class PegAdapter extends SquarePeg{
          ?private RoundPeg rp;
          ?public PegAdapter(RoundPeg vrp){
          ??this.rp=vrp;
          ?}
          ?public void insertRound(String str){
          ??rp.insertIntohole(str);
          ?}
          ?public void insertSquare(String str){
          ??super.insert(str);
          ?}
          }
          public class AdapterImpl {

          ?
          ?
          ?/**
          ? * @param args
          ? */
          ?public static void main(String[] args) {
          ??RoundPeg rp=new RoundPeg();
          ??PegAdapter pg=new PegAdapter(rp);
          ??pg.insertRound("圓柱型");
          ??pg.insertSquare("方型");
          ?}

          }

          posted on 2006-07-03 23:03 有貓相伴的日子 閱讀(481) 評論(0)  編輯  收藏 所屬分類: Patterns
          本站不再更新,歡迎光臨 java開發(fā)技術(shù)網(wǎng)
          主站蜘蛛池模板: 科技| 武山县| 泗洪县| 佛山市| 扎鲁特旗| 眉山市| 彝良县| 扬中市| 金寨县| 望奎县| 兴化市| 绍兴县| 新沂市| 阿拉善盟| 朝阳县| 文水县| 祁连县| 赞皇县| 和硕县| 商水县| 宁化县| 堆龙德庆县| 西丰县| 三穗县| 阿拉善左旗| 军事| 博罗县| 维西| 彰武县| 广州市| 平安县| 山西省| 通许县| 澄江县| 高雄县| 阜新| 西和县| 托里县| 喀喇沁旗| 绥滨县| 达拉特旗|