3 .1适配器模式概念

定义:适配器模式将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)。 

使用场景:

1 系统需要使用现有的类,而这些类的接口不符合系统的需要。 
2 想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作。 
3 需要一个统一的输出接口,而输入端的类型不可预知。

类型:类适配者模式、对象适配者模式

类适配者模式:主要思想就是继承,令适配器(adpater)继承被适配者(adaptee)的接口,再来实现目标(target)

package AdapterDesign;

//被适配者
public class Adaptee {
	public void adpateeRequest() {
		System.out.println("被适配者的方法");
	}
}
package AdapterDesign;

public interface Target {
	void request();
}
package AdapterDesign;

public class Adapter extends Adaptee implements Target {

	@Override
	public void request() {
		// TODO Auto-generated method stub
		super.adpateeRequest();
	}
	
}
package AdapterDesign;

public class ConcreteTarget implements Target {

	@Override
	public void request() {
		// TODO Auto-generated method stub
		System.out.println("ConcreteTarget 目标方法");
	}

}
package AdapterDesign;

public class Test {

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

}

结果:

ConcreteTarget 目标方法
被适配者的方法

UML类结构图

对象适配者:主要通过组合方式,adapter对象内含有adaptee的对象。

和类适配器基本一样,只有adapter不一样:

package AdapterDesign.ObjectAdapter;

public class Adapter implements Target {
	Adaptee adaptee=new Adaptee();
	@Override
	public void request() {
		// TODO Auto-generated method stub
		adaptee.adpateeRequest();
	}
	
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值