java设计模式-适配器模式

说明

适配器模式的思想是:把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作

角色

  • 源(Adaptee):需要被适配的对象或类型,相当于插头。
  • 适配器(Adapter):连接目标和源的中间对象,相当于插头转换器。
  • 目标(Target):期待得到的目标,相当于插座。

代码实现

适配器模式包括3种形式:类适配器模式、对象适配器模式、接口适配器模式(或又称作缺省适配器模式)

以下举例,最新智能手机用VGA接口适配实现充电

源:手机typeC充电

package com.zhouzy.sjms.adaptee;

public class Adaptee {
	
	public void typeC(){
		System.out.println("手机正在充电");
	}
}

目标:vga充电

package com.zhouzy.sjms.adaptee;

public interface Target {
	public void vga();	//目标,vga充电
}

1、类适配器模式

package com.zhouzy.sjms.adaptee;

public class Adapter extends Adaptee implements Target {

	@Override
	public void vga() {
		typeC();	//vga实现typec充电
	}

}

2、对象适配器

package com.zhouzy.sjms.adaptee;

public class AdapterObj implements Target {

	Adaptee adaptee;
	public AdapterObj(Adaptee adaptee){
		this.adaptee = adaptee;
	}
	
	@Override
	public void vga() {
		adaptee.typeC();	//vga实现typec充电
	}

}

3、接口适配器

定义一个接口,所有方法都定义好

package com.zhouzy.sjms.adaptee;

public interface ITarget {
	public void typeC();
	public void typeC2vga();
	
}

定义一个抽象实现类

package com.zhouzy.sjms.adaptee;

public abstract class AbsAdapter implements ITarget {
	 	public void typec() { 
	 		
	 	}
	    
	    public void typec2vga() { 
	    	
	    }
}

具体实现类

package com.zhouzy.sjms.adaptee;

public class VgaAdapter extends AbsAdapter{	//其原理就是这个适配器同时实现了vga充电功能和typeC的充电功能

	@Override
	public void typeC() {
		System.out.println("手机正在充电");
	}

	@Override
	public void typeC2vga() {
		System.out.println("手机正在充电");
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wwwzhouzy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值