[设计模式] ------ 适配器模式

本文介绍了适配器模式的概念及应用场景,强调了该模式应当谨慎使用,并通过实例演示了如何在不修改现有类的情况下,利用适配器模式来实现新的接口调用。

适配器把一个类的接口,强制变成另外一个类的接口实现。
个人建议,万不得已不要用适配器。但是,你一定要知道有这么个东西。
如果你的项目刚刚起步,就有人用了适配器,那基本上就是滥用。
适配器一般是项目庞大,比如接口已经对外提供出去,不好快速修改了,但由于特殊业务需要其他接口的实现,不得已才用的。
所以,适配器模式,能少用则少用,能不用则不用。

具体实现

假设有个类A,类中有方法aMethod;
再有个类B,类中有方法bMethod;

正常情况下,A类的引用调用方法aMethod,B类的引用调用方法bMethod,如下。
A a = new A();
a.aMethod();
B b = new B();
b.bMethod();

现在需求如下,在不改变类A和类B的前提下,想用类A的引用,调用方法aMethod,但最终方法aMethod中却是方法bMethod的实现。

这时就要用到适配器模式。
我们新建一个类C,继承类A,然后把类B作为类C的成员变量注入进来,然后重写方法aMethod,在aMethod方法中,使用类B的引用,调用类B的bMethod方法,即可。
类C就是AB的适配器,准确的说,是C让A适配了B。

class C extends A{
	@Autowired
	private B b;

	@Override
	private void aMethod(){
		b.bMethod();
	}
}

这样一来,就可以让类A的引用调用方法aMethod,结果却是调用了bMethod方法。

A a = new C();
a.aMethod();

注意

如果一个项目过多的使用适配器模式,那将会使项目的可读性大大降低,甚至会误导人。
这种情况,就要考虑重构项目了。
所以说,适配器就是为了解决短时间的问题,不得已才这么做的,他破坏了类与类之间清晰的界限,有种移花接木的感觉,不能常用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值