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

Java 设计模式(五)适配器模式

2018-02-09 17:34 281 查看
一、简介

适配器模式主要用于将两个不适配的接口相结合,使得通过原有接口不用修改原有代码,就能用于新的接口需求(如现在客户提供一组接口来给我们实现,而我们原有的接口可以完成这个工作,但两个接口不匹配,此时可以使用适配器模式)

二、代码示例

要求:

一个插座需要一个三头的插头才能接通电源供电,而我们有一个两头的插头,要求写一个适配器使得两个头的插头可以使用。

插头接口及两头的插头:

//三头插头接口(相当于客户要求的接口,此处不做实现)
interface IThreePlug{
//三头插头插入功能
void threePluginsert();
}
//两头插头接口
interface ITwoPlug{
//两头插头插入功能
void twoPlugInsert();
}
//两头插头实现类
class TwoPlugImpl implements ITwoPlug{
public void twoPlugInsert(){
System.out.println("twoPlug is pluging...");
}
}


插座:

class Outlet{
//连接方法需要一个三头插头
public void connect(IThreePlug plug){
System.out.println("I need a threePlug");
plug.threePluginsert();
System.out.println("connect success");
}
}


适配器:

class MyAdapter implements IThreePlug{
//适配器实现三头插头接口,持有两头插头对象
private ITwoPlug plug;
MyAdapter(ITwoPlug plug){
this.plug = plug;
}
//三头插头插入方法实际由两头插头完成
public void threePluginsert(){
this.plug.twoPlugInsert();
}
}


场景模拟:

public class AdapterTest {
public static void main(String[] args) {
Outlet outlet = new Outlet();
outlet.connect(new MyAdapter(new TwoPlugImpl()));
}
}


结果打印

I need a threePlug
twoPlug is pluging...
connect success


小结:

适配器模式对于相似业务需要不同接口的场景有着很大的帮助,大大提高了代码的复用性。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  设计模式 学习 笔记