设计模式之Adapter——电话篇(原创)

类别:Java 点击:0 评论:0 推荐:

设计模式之Adapter——电话篇

 

 

 

前几天一位朋友把他的电话号码告诉我,我当时随手抄在一张小纸片上,然后把它夹在了一本书里,后来没想到我老婆把这本书邮个他弟了,这不当我有重要的事要和朋友时,没有办法联系了。书已经被邮了,这是不可更改的事实,打电话给朋友说重要的事,也是必须要干的。这些都不能以我的意志而转移。我该怎么办呢?还好有现代化的通讯工具--电话,我可以打电话给小舅子,让他告诉我不就得了吗?

 

好了言归正传,让我们开始吧。

 

 

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:通过打电话这个协调类,我获得了所要的电话号码,同时也和朋友说了事.

 

 

 

 

本文地址:http://com.8s8s.com/it/it14678.htm