适配器模式在Spring以及MyBatis源码中的应用
图⼀ 类适配器UML类图
图⼆ 对象适配器UML类图
1.2 ⽇常⽣活中看装饰器模式
在现实⽣活中,经常出现两个对象因接⼝不兼容⽽不能在⼀起⼯作的实例,这时需要第三者进⾏适配。例如,⽤直流电的笔记本电脑接交流电源时需要⼀个电源适配器,⽤计算机访问照相机的 SD 内存卡时需要⼀个读卡器等。
在软件设计中也可能出现:需要开发的具有某种业务功能的组件在现有的组件库中已经存在,但它们与当前系统的接⼝规范不兼
/**
* @author 26530
*      HDMI接⼝
*/
public interface HDMIPort
{
void useHDMIPort();
}
/**
梦见下雪是什么意思* @author 26530
*  数据转换线
*/
public class DataConversionLine
{
public void vgaToHdmi()
{
System.out.println("将VGA数据传输转为HDMI");
}
}
/**
暗黑3职业介绍
* @author 26530
*    笔记本电脑
*/
public class LaptopComputer extends DataConversionLine implements HDMIPort {
@Override
public void useHDMIPort()
{
System.out.println("使⽤的HDMI接⼝");
}
}
/**
* @author 26530
* 投影仪
*/
public class Projector
{
public void dataLine()
{
System.out.println("投影仪使⽤的是VGA接⼝的数据线");
}
}
public class Test
{
public static void main(String[] args)
{
//笔记本想连接投影仪,但是笔记本⾃⾝的接⼝是HDMI,投影仪的接⼝是VGA的。
//为解决这个问题,我们需要⼀个适配器,把vga的接⼝转为hdmi,通过这个适配器就可以实现笔记本电脑和投影仪连接了      Projector projector = new Projector();
projector.dataLine();
飞信打电话
LaptopComputer laptopComputer = new LaptopComputer();
laptopComputer.vgaToHdmi();
laptopComputer.useHDMIPort();
/*
投影仪使⽤的是VGA接⼝的数据线
将VGA数据传输转为HDMI
使⽤的HDMI接⼝
*/
//这样就实现了笔记本和投影仪相连接
}
}
1.4.2 对象适配器模式
/**
* @author 26530
* HDMI接⼝
*/
public interface HDMIPort
{
void useHDMIPort();
}
新年快乐日语/**
* @author 26530
*  数据转换线
*/
public class DataConversionLine
中考数学压轴题及答案
{
public void vgaToHdmi()
{
System.out.println("将VGA数据传输转为HDMI");
}
}
/**
* @author 26530
*    笔记本电脑
*/
public class LaptopComputer  implements HDMIPort
{
一亩是多少平方private DataConversionLine dataConversionLine;
public LaptopComputer(DataConversionLine dataConversionLine) {
super();
this.dataConversionLine = dataConversionLine;
}
public LaptopComputer() {
super();
/
/ TODO Auto-generated constructor stub
}
@Override
public void useHDMIPort()
{
System.out.println("使⽤的HDMI接⼝");
}
public DataConversionLine getDataConversionLine() {
return dataConversionLine;
}
public void setDataConversionLine(DataConversionLine dataConversionLine) {  this.dataConversionLine = dataConversionLine;
}
}
/**
* @author 26530
* 投影仪
*/
public class Projector
{
public void dataLine()
{
System.out.println("投影仪使⽤的是VGA接⼝的数据线");
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。