适配器模式介绍
一,结构型模式是描述如何将类与对象结合在一起的,形成一个更大的结构。结构型模式包括了七种:桥接模式,适配器模式,组合模式,装饰模式,外观模式,享元模式,代理模式。
二,适配器模式(Adapter)
1,适配器模式(Adapter)是将一个类的接口转换成客户希望的另外一个接口。适配器使得原本的接口不兼容而不能一起工作的那些类可以一起工作。
2,使用条件:
(1),你想使用一个已经存在的类,而其他接口不符合你的要求。
(2),你想要创建一个可以复用的类,该类可以与其他不相关的类协同工作。
(3),你想使用一些已经存在的子类。对象适配器Adapter可以适配它的父类接口。
3,模式所涉及的角色
(1),目标角色(Target):这就是所期待得到的接口
(2),源角色(Adapter): 现在需要适配的接口
(3),适配器角色(Adapter): 适配器把源接口转换目标接口
三,一个适配器模式的程序:
import java.util.*;
interface Target{ //目标角色: 这就是所期待得到的接口
void adapteeMethod();
void adapterMethod();
}
class Adaptee{ //源角色: 现在需要适配的接口
public void adapteeMethod(){
System.out.println("1,adaptee Method");
}
}
class Adapter implements Target{ //适配角色:适配器把源接口转化成目标接口。因为实现接口,因此接口中的所有方法都要在子类中实现。
private Adaptee adaptee;
public Adapter(Adaptee adaptee)
{
this.adaptee=adaptee;
}
public void adapteeMethod()
{
System.out.println("使用原来存在的接口方法");
adaptee.adapteeMethod();
}
public void adapterMethod()
{
System.out.println("使用新接口的方法");
System.out.println("2, Adapter Method");
}
}
public class AdapterTest {
public static void main(String []args)
{
//Target target=new Target();//接口是不能实例化对象的
Target target=new Adapter(new Adaptee());
target.adapteeMethod();
target.adapterMethod();
}
}
运行结果如下: