设计模式之结构型模式:适配器模式-创新互联
前言
分享标题:设计模式之结构型模式:适配器模式-创新互联
文章网址:http://cdiso.cn/article/igpch.html
前面讲解完了设计模式中的创建性模式,本文开始讲解设计模式中的结构性模式之一:适配器模式。
创新互联企业建站,十多年网站建设经验,专注于网站建设技术,精于网页设计,有多年建站和网站代运营经验,设计师为客户打造网络企业风格,提供周到的建站售前咨询和贴心的售后服务。对于成都网站建设、成都网站设计中不同领域进行深入了解和探索,创新互联在网站建设中充分了解客户行业的需求,以灵动的思维在网页中充分展现,通过对客户行业精准市场调研,为客户提供的解决方案。一、适配器模式的是干什么的?A类想要使用B类中的某些方法,但是不能直接使用,需要一个中间类对B类进行处理后,A类才能使用,这个中间类就是适配器,这种模式就是适配器模式。示意图如下。
既A类和B类之间夹了一个适配器类,适配器将B类传入的数据src进行处理,然后输出为A类需要使用的dst传给A类。
按照适配器如何接收B类的方式,将适配器模式分为三种模式,如果适配器类通过继承B类获得B类行为,则称为类适配器模式;如果直接将B类对象聚合到适配器类中,称为对象适配器模式;如果以接口的形式给到适配器类,则称之为接口适配器。
二、适配器模式案例如我们有一个Voltage220v类只能输出220v的电压,但是现在我们要给手机充电,只能使用5V的电压,那么此时就需要一个适配器类VoltageAdapter首先将220v的电压转为5v,然后再给手机使用。三种适配器模式的实现如下:
1. 类适配器模式实现- UML图如上所示,VoltageAdapter继承Voltage220v并实现IVoltage5v接口,然后手机再使用VoltageAdapter中输出的5V电压进行充电。
- 具体实现代码如下
public class Voltage220v {public int output200v()
{return 220;
}
}
public interface IVoltage5v {public int output5v();
}
public class VoltageAdapter extends Voltage220v implements IVoltage5v{@Override
public int output5v() {int src = output200v();
int dis = src / 44;
return dis;
}
}
public class Phone {public void charging(IVoltage5v iVoltage5v)
{if (iVoltage5v.output5v() == 5)
{System.out.printf("可以充电");
}
else
{System.out.printf("不能充电");
}
}
}
public class client {public static void main(String[] args) {Phone phone = new Phone();
IVoltage5v iVoltage5v = new VoltageAdapter();
phone.charging(iVoltage5v);
}
}
2. 对象适配器模式实现- 对象适配器UML图如上所示,与类适配器模式的区别就是对象适配器直接将Voltage220v对象聚合到了VoltageAdapter中,其余和类适配器模式思想一样。
接口适配器核心思想是通过一个抽象类继承接口,并对所有的接口方法做默认空实现,那么该抽象类的子类就可以有选择的覆盖父类中的某些方法,而不必覆盖全部方法。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
分享标题:设计模式之结构型模式:适配器模式-创新互联
文章网址:http://cdiso.cn/article/igpch.html