設計模式之Adapter——電話篇(原創)

設計模式之Adapter——電話篇<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

 

 

前幾天一位朋友把他的電話號碼告訴我,我當時隨手抄在一張小紙片上,然後把它夾在了一本書裏,後來沒想到我老婆把這本書郵個他弟了,這不當我有重要的事要和朋友時,沒有辦法聯繫了。書已經被郵了,這是不可更改的事實,打電話給朋友說重要的事,也是必須要乾的。這些都不能以我的意志而轉移。我該怎麼辦呢?還好有現代化的通訊工具--電話,我可以打電話給小舅子,讓他告訴我不就得了嗎?

 

好了言歸正傳,讓我們開始吧。

 

 

1、在這裏,先定義一個被郵書(PostedBook)類:

 

public class PostedBook {

  //從書中獲得我所要的電話號碼

  public void getTelCodeFromBook() {

    System.out.println("得到電話號碼!");

  }  

}

2、再定義一個打電話給朋友(TelToFriend)的類:

 

public class TelToFriend {

 

  public void telSayThing(){

    System.out.println("說重要的事!");

  }

}

3、定義獲得打電話(TelPhone)類:

 

public class TelPhone extends TelToFriend{

  private PostedBook postedBook;

  public  TelPhone (PostedBook postedBook) {//打電話關於被郵的書

    this.postedBook=postedBook;

  }

  public void getTelCode() { //從被郵的書中獲得電話號碼

  postedBook.getTelCodeFromBook();     

 }

}

4、編寫測試類:

 

public class Test {

  public static void main(String args[]){

    PostedBook postedBook = new PostedBook(); //被郵的那本書

    TelPhone telPhone = new TelPhone(postedBook);

    telPhone.getTelCode(); //得到朋友電話號碼

    telPhone.telSayThing(); //和朋友說重要的事

  }

 

}

5、說明:

 

A:Adapter模式的目的是將兩個沒有關係的類結合在在一起使用,在本例中被郵的書和打電話給朋友是兩個風馬牛不向及的事,正是因爲一個電話號碼才讓他們有所關聯,但獲得這個號碼的前提是我必須先打電話,因此通過電話完成了我的目的.

 

B:通過打電話這個協調類,我獲得了所要的電話號碼,同時也和朋友說了事.

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章