adapter模式

1、核心意图:
将一个类的接口转换成客户希望的另外一个接口,从而使得原本由于接口不兼容而不能一起工作的类可以一起工作。
该模式的目标是通过一个代理(这里是Adapter),在原来的类(Adaptee)和客户(Client)之间进行协调,从而达到兼容的目的。其核心是解决一致性的问题。

2、适配器(Adapter)模式的构成
• 目标抽象角色(Target) :定义客户要用的特定领域的接口
• 适配器(Adapter) :调用另一个接口,作为一个转换器
• 适配器(Adaptee) :定义一个接口,Adapter需要接入
• 客户端(Client) :协同对象符合Adapter适配器

3、适配器的分类
– 类适配器(采取继承的方式)
– 对象适配器(采取对象组合的方式)[color=red]推荐[/color]

4、适用性
• 对象需要利用现存的并且接口不兼容的类。
• 需要创建可重用的类以协调其他接口可能不兼容的类。

5、身边例子
在我们实际生活中也很容易看到这方面的例子,比如我们要和一个外国人打交道,例如韩国 人,如果我们没有学习过韩语,这个韩国人也没有学习过我们汉语,在这种情况下,我们之间是很难进行直接交流沟通。为了达到沟通的目的有两个方法:
1)改造 这个韩国人,使其能够用汉语进行沟通;
2)请一个翻译,在我们和这个韩国人之间进行语言的协调。
显然第一种方式——改造这个韩国人的代价要高一些,我们不 仅要重新培训他汉语的学习,还有时间、态度等等因素。
而第二种方式——请一个翻译,就很好实现,而且成本低,还比较灵活,当我们想换个日本人,再换个翻译 就可以了。

6、代码实现
[color=red]Target.java[/color]
public interface Target
{
public void method1();
}


[color=red]Adapter.java[/color]
public class Adapter extends Adaptee implements Target
{
@Override
public void method1()
{
this.method2();
}
}


[color=red]Adaptee.java[/color]
public class Adaptee
{
public void method2()
{
System.out.println("执行方法!");
}
}


[color=red]Client.java[/color]
public class Client
{
public static void main(String[] args)
{
Target target = new Adapter();

target.method1();
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值