适配器模式

适配器模式(Adapter模式)

把一个类的接口转换成客户端所期待的另一种接口,从而使原接口不匹配而无法在一起工作的两个类能在一起工作。

如果有两个编译好的(无源代码)类,类A有某些功能,但是需要一个xml读取模块才能工作,
这个模块要实现这个接口:

public interface XmlReader {
	public InputStream xmlReader();
}

你的另一个类B恰好有这个功能,但是B实现的是这个接口:

public interface ReaderXml {
public InputStream readerXml();
}

这个时候我们的做法是写个适配器

public class Adapter implements XmlReader extends B{
	public InputStream xmlReader(){
		return readerXml();
	}
}

适配器模式的几个要素

目标、客户、被适配者、适配器。

目标(CTarget):定义一个客户端使用的特定接口。

客户(CClient):使用目标接口,与和目标接口一致的对象合作。

被适配者(CAdaptee):一个现存需要匹配的接口。

适配器(CAdapter):负责将CAdaptee的接口转换成CTarget的接口。适配器是一个具体的类,这是本模式的核心。

适配器分类

适配器总体上可以分为 类适配器对象适配器

类适配器和对象适配器的不同

类适配器是通过继承类适配者类(Adaptee Class)实现的,另外类适配器实现客户类所需要的接口。当客户对象调用适配器类方法的时候,适配器内部调用它所继承的适配者的方法。对象适配器包含一个适配器者的引用(reference),与类适配器相同,对象适配器也实现了客户类需要的接口。当客户对象调用对象适配器的方法的时候,对象适配器调它所包含的适配器者实例的适当方法。

适配器模式

上一篇:简单的JS运动封装实例---侧栏分享到


下一篇:一.核心类介绍