目的将一个类的接口转换成客户希望的另外一个接口A d a p t e r 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作
意图你想使用一个已经存在的类而它的接口不符合你的需求
你想创建一个可以复用的类该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作
(仅适用于对象A d a p t e r )你想使用一些已经存在的子类但是不可能对每一个都进行子类化以匹配它们的接口对象适配器可以适配它的父类接口
(目的和意图是不变的摘自《设计模式迷你手册》电子版)
下面是一个Java版的示例
一原理图
二示例代码
/**
* Created by IntelliJ IDEA
* User: leizhimin
* Date: ::
* 源角色
*/
public class Adaptee {
public int getv(){
return ;
}
}
/**
* Created by IntelliJ IDEA
* User: leizhimin
* Date: ::
* 目标角色
*/
public interface Target {
int getv();
int getv();
}
/**
* Created by IntelliJ IDEA
* User: leizhimin
* Date: ::
* 适配器角色:扩展源角色实现目标角色从而使得目标角色改动时候不用改动源角色只要改动适配器
*/
public class Adapter extends Adaptee implements Target{
public int getv(){
return ;
}
}
/**
* Created by IntelliJ IDEA
* User: leizhimin
* Date: ::
* 客户端
*/
public class Client {
public static void main(String rags[]) {
new Client()test();
}
public void test() {
Target target = new Adapter();
int v = targetgetv();
int v = targetgetv();
}
}
适配器通过扩展源角色同时实现目标接口从而满足了同时提供vv电压的要求
原文出处