首页 > 其他 > 详细

适配器模式(Adapter)

时间:2021-05-10 13:14:16      阅读:12      评论:0      收藏:0      [点我收藏+]

应用场景
以前开发的系统存在满足新系统功能需求的类,但其接口和新系统的接口不一致
使用第三方提供的组件,但组件接口定义和自己要求的接口定义不同

 

关键:适配器类继承适配者类或者拥有适配者类对象的引用

 

定义:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作

 

目标接口(Target):当前系统期待的接口,可以是抽象类或接口
适配者(Adaptee)
适配器(Adapter)

 

类适配器模式

//适配者类
class Adaptee {
	public void specificRequest() {
		System.out.println("适配者中业务代码");
	}
}

//目标接口
interface Target {
	public void request();
}

//适配器类
class Adapter extends Adaptee implements Target {
	public void request() {
		specificRequest();
	}
}

  

对象适配器模式

//适配者类
class Adaptee {
	public void specificRequest() {
		System.out.println("适配者中业务代码");
	}
}

//目标接口
interface Target {
	public void request();
}

//适配器类
class Adapter implements Target {
	private Adaptee adaptee;
	public Adapter(Adaptee adaptee) {
		this.adaptee = adaptee;
	}
	public void request() {
		adaptee.specificRequest();
	}
}

  

 

模式扩展:双适配器模式

//适配者接口
interface Adaptee {
	public void specificRequest();
}

//适配者接口实现类
class AdapteeImpl implements Adaptee {
	public void specificRequest() {
		System.out.println("适配者中业务代码");
	}
}

//目标接口
interface Target {
	public void request();
}

//目标接口实现类
class TargetImpl implements Target {
	public void request() {
		System.out.println("目标代码被调用");
	}
}

//双向适配器
class TwoWayAdapter implements Target,Adaptee {
	private Target target;
	private Adaptee adaptee;
	public TwoWayAdapter(Target target) {
		this.target = target;
	}
	public TwoWayAdapter(Adaptee adaptee) {
		this.adaptee = adaptee;
	}

	public void request() {
		adaptee.specificRequest();
	}
	public vodi specificRequest() {
		target.request()
	}
}

  

 

适配器模式(Adapter)

原文:https://www.cnblogs.com/tang321/p/14750437.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!