Java设计模式之—Adapter模式(适配器模式)

Java设计模式之—Adapter模式(适配器模式)

适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。

Demo1

通过继承去实现适配器功能。

Usb接口类
public interface Usb {
	void isUsb();
}
Useber实现类(实现Usb接口)
public class Useber implements Usb {

	@Override
	public void isUsb() {
		System.out.println("USB口");
	}

}
Ps2接口类
public interface Ps2 {
	void isPs2();
}
Adapter类(继承Usber类,实现Ps2类)
public class Adapter extends Useber implements Ps2 {

	@Override
	public void isPs2() {
		isUsb();
	}

}
Clienter类(测试类)
public class Clienter {
	public static void main(String[] args) {
		Ps2 ps2 = new Adapter();
		ps2.isPs2();//结果:USB口
	}
}
Demo2

通过组合来实现适配器功能。

Usb接口类
public interface Usb {
	void isUsb();
}
Useber实现类(实现Usb接口)
public class Useber implements Usb {

	@Override
	public void isUsb() {
		System.out.println("USB口");
	}

}
Ps2接口类
public interface Ps2 {
	void isPs2();
}
Adapter实现类(实现Ps2接口类)
public class Adapter implements Ps2{
	private Usb usb;
	public Adapter(Usb usb) {
		this.usb=usb;
	}
	@Override
	public void isPs2() {
		usb.isUsb();
	}
	
}
Clienter实现类(测试类)
public class Clienter {
	public static void main(String[] args) {
		Ps2 p = new Adapter(new Usber());
		p.isPs2();//结果:USB口
	}
}
Demo3

通过抽象类来实现适配,这种适配稍别于上面所述的适配。

A接口类
public interface A {
	void a();

	void b();

	void c();

	void d();

	void e();

	void f();
}
Adapter实现类(实现A接口)
public abstract class Adapter implements A {
	public void a() {
	}

	public void b() {
	}

	public void c() {
	}

	public void d() {
	}

	public void e() {
	}

	public void f() {
	}
}
Ashili类(继承Adapter实现类)
public class Ashili extends Adapter {
	public void a() {
		System.out.println("实现A方法被调用");
	}

	public void d() {
		System.out.println("实现d方法被调用");
	}
}
Clienter类(测试类)
public class Clienter {

	public static void main(String[] args) {
		A a = new Ashili();
		a.a();//结果:实现A方法被调用
		a.d();//结果:实现d方法被调用
	}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
适配器模式是一种结构型设计模式,它允许将不兼容的对象组合在一起,通过适配器来使其能够正常工作。在Java编程语言中,适配器模式通常用于将现有接口转换为客户端所期望的接口。 下面是一个Java适配器模式的例子,假设我们有一个已经存在的类,该类只能输出字符串,但我们需要输出整数。我们可以使用适配器模式来解决这个问题。 首先,我们定义一个接口,该接口定义了我们期望的输出整数的方法: ``` public interface IntegerOutput { public int outputInt(); } ``` 然后,我们创建一个适配器类,该类实现了这个接口,并将字符串转换为整数输出: ``` public class StringToIntegerAdapter implements IntegerOutput { private String str; public StringToIntegerAdapter(String str) { this.str = str; } public int outputInt() { int intValue = Integer.parseInt(str); return intValue; } } ``` 最后,我们使用适配器类来输出整数: ``` public class Main { public static void main(String[] args) { String str = "123"; IntegerOutput adapter = new StringToIntegerAdapter(str); int intValue = adapter.outputInt(); System.out.println(intValue); } } ``` 在这个例子中,我们使用适配器模式将不兼容的字符串转换为整数输出。通过创建一个适配器类,该类实现了期望的输出整数的接口,并将字符串转换为整数输出。最后,我们使用适配器类来输出整数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值