您的位置:首页 > 其它

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

2004-10-13 08:44 274 查看
设计模式之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:通过打电话这个协调类,我获得了所要的电话号码,同时也和朋友说了事.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息