适配器模式

1适配器模式定义:将一个类的接口转化为客户希望的另一个类的接口,使得原本由于接口不兼容的2个类可以一同工作。

Client:客户端,调用自己领域接口Target。

Target:定义客户端需要的跟特定领域有关的接口。

Adaptee:已经实现的,满足客服端要求功能的类,但是由于接口与客服端特定领域接口不兼容而无法工作,需要适配。

Adapter:适配器,将Adaptee适配成Client需要的Target。

实现:Target:  

	interface Target {
	public void request();
}
Adaptee:
public class Adaptee {
	public void specialRequest(){
		System.out.println("special method~");
	}
}
Adapter:

public class Adapter implements Target{
	Adaptee adaptee;
	Adapter(Adaptee adaptee){
		this.adaptee = adaptee;
	}
	@Override
	public void request(){
		adaptee.specialRequest();
	}
	
}
Client:

public class Client {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Target target = new Adapter(new Adaptee());
		target.request();
	}

}
2.模式功能:主要功能是 模式转换,目的是复用已用的功能,而不是实现新的接口。同时适配器里也能够实现功能,这种适配器被称为 智能适配器。

3.适配器的实现:1.常规实现:如例子,适配器实现Target接口,然后持有Adaptee对象。

                                               2.智能适配器:实现一些在Target中定义的功能,而Apaptee并没有的功能。

                                               3.适配多个Adaptee:完成Target的功能,需要适配多个Adaptee。

                                              4.双向适配器:在Adapter中能够将Target适配成Adaptee,同时能够将Adaptee适配成Target。

4.适配器分类:1.对象适配器:依赖对象的组合

                            2.类适配器:java不支持多重继承,但是可以:先实现Target接口,再继承Adaptee方法。

5.优点:更好的复用性和可扩展性。

6.缺点:过多使用,会让系统非常凌乱,不容易整体把控,如非必要,优先对系统进行重构

7.本质:转换匹配,复用功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值