设计模式之适配器模式

一.什么是适配器模式

作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。

二.适配器模式怎么写

举个例子,我们给手机充电,都会用到充电器,而这个充电器就是适配器,它将220V的电压转成你所需要的电压。所以在做转换的时候会有三个角色,1.target(目标角色)即所需要的5V电压,2.adapter(转换器)即电源适配器,3.adaptee(源角色)即220V的原始电压。下面我们来看看三种写法。
第一种,类适配器,我们来看看UML类图:
在这里插入图片描述
转换器和源是通过继承来拿到源角色的方法,然后在通过转换成目标角色所需要的5V,下面来来看看代码


/** 类适配器 被转换接口 理解为220V电压
 * @author Seven
 *
 */
public class Adaptee {
	
	public int outPut220V() {
		return 220;
	};

}


/** 目标接口 需要被转换的接口 需要5V的电压
 * @author Seven
 *
 */
public interface Target {
	
	int request5V();

}

public class Adapter extends Adaptee implements Target{
	@Override
	public int request5V() {

		System.out.println("将220V开始转换成5V");
		int change=outPut220V()/4;
		return change;	
	}
}

我们发现通过类适配器确实是可以解决问题,但是它是通过继承来实现的,这样并不符合我们设计原则的第六条,也就是尽量使用合成聚合来解决问题。因为继承的耦合性更大,所以我们便有了第二种对象适配器。
给大家看看UML类图,代码就不贴了
在这里插入图片描述
这样代码的耦合性就降低了,但是我们如果扩展性好像并没有那么好,因为Adaptee是一个实现类,并不是一个抽象类或者接口,我们设计模式原则的第三条就是依赖倒置原则即依赖接口/抽象而不依赖实现,于是我们就有了第三种适配器模式,接口适配器模式,下面就上UML类图。
在这里插入图片描述
这样写起来,代码是不是就很优雅了。

三.小结

以上内容就是今天所要总结适配器模式,它的出现是为了适配不同的接口,是一种结构性设计模式(通过组合聚合的获取新功能),像我们在Android最常见的适配器就是在设置ListView、GridView、RecycleView中添加适配器了,它将数据转换成视图,详细内容就不多讲了,回头我在整理一下。如果您觉得本文对您有所帮助,欢迎点赞或留下评论,如果觉得本文还要不足之处,也欢迎您在下方吐槽,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值