博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java设计模式七——适配器模式
阅读量:6239 次
发布时间:2019-06-22

本文共 1608 字,大约阅读时间需要 5 分钟。

###定义 适配器模式将一个类的接口转换成客户期望的另一个接口。

适配器模式类图

需要注意的是,类适配器一般需要编程语言支持多继承的模式(例如C++)在此不讨论。

###实例 适配器模式就跟生活中的适配器一样,比如iPhone7的耳机接口是lighting接口,但是很多的耳机都是3.5mm的耳机接口,要想使用3.5mm接口耳机在iPhone7上听歌,我们就需要一个耳机接口的适配器。

首先的我们定义iPhone7耳机接口和一个iPhone7官配耳机类

public interface LightingEarPhone{	public void listenByLighting();}public class EarPods implements LightingEarPhone{	public void listenByLighting(){		System.out.println("Listen Music By EarPods!");	}}复制代码

定义普通的耳机和一个普通耳机的类

public interface CommontEarPhone{	public void listenByCommont();}public class SonyEarPhone implements CommontEarPhone {	public void listenByCommont(){		System.out.println("Listen Music By SonyEarPhone!");	}}复制代码

现在我们需要用iPhone7来听歌,使用iPhone官配的耳机

public class ListenMusicByIphone7{	public static void main(String[] args) {		//iPhone7只能通过lighting接口的耳机听音乐		LightingEarPhone iphone7EarPhone=new EarPods();		iphone7EarPhone.listenByLighting();	}}复制代码

但是我们现在需要用Sony 的耳机听歌,这个时候适配器就起到作用了

public class LightingAdapter implements LightingEarPhone{	CommontEarPhone commontEarPhone=null;	public LightingAdapter(CommontEarPhone commontEarPhone){		this.commontEarPhone=commontEarPhone;	}	public void listenByLighting(){		commontEarPhone.listenByCommont();	}}复制代码

下面我们用Sony的耳机来在iPhone7上听音乐

public class ListenMusicByIphone7{	public static void main(String[] args) {		//iPhone7只能通过lighting接口的耳机听音乐		LightingEarPhone iphone7EarPhone=new EarPods();		iphone7EarPhone.listenByLighting();		//使用Sony的耳机在iPhone7上听音乐(使用适配器)		SonyEarPhone sonyEarPhone=new SonyEarPhone();		LightingEarPhone iphone7EarPhone2=new LightingAdapter(sonyEarPhone);		iphone7EarPhone2.listenByLighting();	}}复制代码

转载地址:http://arzia.baihongyu.com/

你可能感兴趣的文章
IIS Express允许外部访问(外部调试)
查看>>
NSSet NSMutableSet的简单使用
查看>>
洛谷P1085不高兴的津津
查看>>
所有的企业都拥抱了互联网,云才有价值,用云计算的本质是用互联网。互联网企业需要满足两个特征,一是要有云计算,二是要在云计算的基础上用数据来优化业务。...
查看>>
阿里金融成立,从第一天开始,就使用阿里云的云计算平台作为运算淘宝和支付宝数据的计算后台。阿里小贷不需要抵押,纯信用贷款,目前已经能做到3分钟提交申请,1秒批准,0人工干预。数据成为新的信用。...
查看>>
0和1:裂变时刻-2.数据爆炸
查看>>
Python 核心编程(第二版)——模块
查看>>
6.08 PMO的生存挑战-这些企业的痛你遇到了吗?
查看>>
傻瓜式十分钟免费开启 HTTPS,是时候为你的站点加上小绿锁了
查看>>
[洛谷P3550][POI2013]TAK-Taxis
查看>>
作业6--超级无敌终结(冲刺二)
查看>>
判断日期格式是否正确
查看>>
解决windows8 FlashPlayer丢失无法安装的问题
查看>>
Python 高级编程技巧
查看>>
BZOJ1497:[NOI2006]最大获利(最大权闭合子图)
查看>>
BZOJ2179:FFT快速傅立叶(FFT)
查看>>
BZOJ3123:[SDOI2013]森林(主席树,启发式合并)
查看>>
varchar和Nvarchar区别
查看>>
《MySQL入门很简单》练习9.5
查看>>
一个简单的购物车程序
查看>>