請教介面卡模式

duanshao發表於2007-07-01
請教一個問題:程式上說,一下程式碼可以實現既打方形樁,又打圓形樁,可是,我看不出來,高手指點一下吧?PegAdapter不是過載了insert(String str),我的感覺是他只能打圓形樁。不知道對不對,我是大一的新生,感覺很笨的,大家不要罵我啊

如何使用?
實現Adapter方式,其實"think in Java"的"類再生"一節中已經提到,有兩種方式:組合(composition)和繼承(inheritance).


假設我們要打樁,有兩種類:方形樁 圓形樁.
public class SquarePeg{
  public void insert(String str){
    System.out.println("SquarePeg insert():"+str);
  }

}

public class RoundPeg{
  public void insertIntohole(String msg){
    System.out.println("RoundPeg insertIntoHole():"+msg);
}
}

現在有一個應用,需要既打方形樁,又打圓形樁.那麼我們需要將這兩個沒有關係的類綜合應用.假設RoundPeg我們沒有原始碼,或原始碼我們不想修改,那麼我們使用Adapter來實現這個應用:

public class PegAdapter extends SquarePeg{

  private RoundPeg roundPeg;

  public PegAdapter(RoundPeg peg)(this.roundPeg=peg;)

  public void insert(String str){ roundPeg.insertIntoHole(str);}

}

相關文章