您的位置:首页 > 编程语言 > Java开发

JAVA 设计模式-适配器模式

2014-01-14 16:16 288 查看
为何需要适配器模式?

适配器模式的用途 用电器做例子,笔记本电脑的插头一般都是三相的,即除了阳极、阴极外,还有一个地极。而有些地方的 电源插座却只有两极,没有地极。电源插座与笔记本电脑的电源插头不匹配使得笔记本电脑无法使用。这时候一个三相到两相的转换器(适配器)。

在适配器中,有三个类,

  ●  目标(Target)角色:这就是所期待得到的接口。注意:由于这里讨论的是类适配器模式,因此目标不可以是类。

  ●  源(Adapee)角色:现在需要适配的接口。

  ●  适配器(Adaper)角色:适配器类是本模式的核心。适配器把源接口转换成目标接口。显然,这一角色不可以是接口,而必须是具体类。

Adapee类可以看做是基类,现在需求要实现一些新的功能的时候,我们不去修改Adapee这个类,而是使用interface也就是Target这个目标接口,让一个新的类Adapter去实现这个借口,即完成了新的功能的添加,但如果还想实现基类的功能的时候,target中还需要有基类的方法,这样,新的类有可以复写的target中的方法,又有基类中方法的实现,这样就做到了在旧功能存在的情况下实现新功能。

/*这个时目标接口,原来类的方法,和将要实现的方法都在其中*/

public
interface
Target {

/**

* 这是源类Adaptee也有的方法

*/

public
void
sampleOperation1();


/**

* 这是源类Adapteee没有的方法

*/

public
void
sampleOperation2();


}

/*此类是原类,包含已经实现的方法*/


public
class
Adaptee {


public
void
sampleOperation1(){}


}


/*此类既实现了原类的方法,又添加了新的方法*/

public
class
Adapter
extends
Adaptee
implements
Target {

/**

* 由于源类Adaptee没有方法sampleOperation2()

* 因此适配器补充上这个方法

*/

@Override

public
void
sampleOperation2() {


//写相关的代码

}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: