设计模式学习笔记(24)——适配器模式实现

本文详细介绍了适配器模式的概念及应用,通过实例演示如何将一个类的接口转换为客户期望的另一个接口,使得原本接口不兼容的类可以协同工作。适用于复用现有类但接口不符合需求的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

适配器模式
适配器模式(Adapter),将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
系统的数据和行为都正确,但接口不符时,我们应该考虑用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用于希望复用一些现存的类,但是接口又与复用环境要求不一致的情况。
在这里插入图片描述

class Target{
	public void Request() {
		System.out.println("普通请求!");
	}
}

class Adaptee{
	public void SpecificRequest() {
		System.out.println("特殊请求!");
	}
}
class Adapter extends Target{
	private Adaptee adaptee=new Adaptee();
	public void Request() {
		adaptee.SpecificRequest();
	}
}
public class Main {

	public static void main(String[] args) {
	Target target=new Adapter();
		target.Request();
	}

}

为了使客户能够使用Adaptee类,提供一个中间环节,即类Adapter类,Adapter类实现了Target接口,并继承自Adaptee,Adapter类的Request方法重新封装了Adaptee的SpecificRequest方法,实现了适配的目的。

interface ITarget{
	  default void Request() {
	}
}

//Adaptee(需要适配的类)
class Adaptee{
	public void SpecificRequest() {
		System.out.println("特殊请求!");
	}
}
class Adapter extends  Adaptee implements ITarget{
	public void Request() {
		this.SpecificRequest();
	}
}
public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ITarget target=new Adapter();
		target.Request();
	}

}

二、何时使用适配器模式
两个类所做的事情相同或相似,但是具有不同的接口时要使用它,客户代码可以统一调用同一接口就行了。这样可以更简单更直接更紧凑。就是在双方都不太容易修改的时候在使用适配器模式适配。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值