Adapter(适配器) -- 类对象结构型模式设计模式
㈠意图:框架
将一个类的接口(方法)转换成客户但愿的另一个接口(方法).Adapter模式使得本来因为接口不兼容而不能一块儿工做的那些类能够一块儿工做.ide
-- GOF <<设计模式>>this
要实现Adapter模式有两种方式设计
①:类继承(类适配器,采用继承的方式)对象
②:对象适配器(采用对象组合的方式,推荐),不用增长新的子类.继承
㈡UML示意图:接口
①:类继承方式的适配器模式:get
②:对象适配器(采用对象组合方法的UML图)it
㈢Adpater(适配器)模式中的角色介绍:
①:目标对象角色
---定义用户须要用到的特定领域的接口(UML图中的Target)
②:适配器(Adaptee)
---要转换的接口
③: Adapter:提供接口的转换做为一个转换器(核心)
④: Client: 协同对象符合Adapter适配器.
㈣:代码实现:
(基于类继承方式的适配器)
/**
* Adapter模式的目标角色;
*/
package com.skywares.designpattern.adapter;
public interface Target
{
public void method1();
}
/**
* Adapter模式的适配器角色 -- 要执行的方法;
*/
package com.skywares.designpattern.adapter;
public class Adaptee
{
public void method2()
{
System.out.println("目标方法....... to call!");
}
}
/**
* Adapter模式的适配器角色 --转换器;
*/
package com.skywares.designpattern.adapter;
public class Adapter extends Adaptee implements Target
{
/*
* 经过调用method1间接地就调用了Adaptee的method2的方法;
* 实质上是面向对象的继承和多态的应用;调用父类的方法;
*/
@Override
public void method1()
{
this.method2();
}
}
/**
* Adapter模式的Client;
*/
package com.skywares.designpattern.adapter;
public class TestAdapter
{
/**
* @param args
*/
public static void main(String[] args)
{
Adapter adapter = new Adapter();
adapter.method1();
}
}
㈤: Adapter模式在Junit框架中的应用;
待补充....(结合反射技术来调用相应的方法)