设计模式之 适配器模式

存在一种情况如下:客户端需要调用一个已经存在的A类的行为,但该类与目前使用的相关(B、C)类实现了不同的接口,为了保持统一,客户希望可以使用统一的接口。适配器模式引入了Adaper类,该类实现了与B、C类相同的接口,且封装了A类的行为,客户端可以等同的看到B、C和Adaper类。

实例:设有三个人:外国人Tom(实现接口IPerson);中国人张三(实现接口IPerson):外星人Extraterrestrial,他们分别要作自我介绍,Tom和张三具有相同的接口,他们自我介绍时使用方法Speak,而外星人没有实现IPerson接口,没有方法Speak,不过他有自己自我介绍的方法,叫“噢噢”;客户端并不关心谁是中国人,谁是外国人,谁是外星人,他们希望统一的使用Speak方法,这时就需要一个Adpater类来转换一下。实例代码如下:

IPerson接口:

 


 public interface IPerson
    {
        
string Speak();
    }

Tom类:

 

Code

张三类:

 

Code

外星人:

 

Code

Adaper类:

 

Code

 

 

客户端:

 

Code

 

 

 

 

 

 

posted @ 2009-11-26 12:46  会长  阅读(186)  评论(0编辑  收藏  举报