适配器模式(java实现)

适配器模式

适配器模式:将一个类的接口转化为客户希望的另一个接口,使得原本因为接口不兼容而不能一起工作的那些类可以共同工作.

何时使用适配器模式:希望复用一些现存的类,但是接口和复用环境的要求不一致,可以通过适配(类似于电源适配器,可以把220V电压转化为可以使用的电压),两个类所做的事情相同或者类似,但是具有不同的接口时,可以使用它,由于类共享同一接口,客户代码统一调用同一接口,这样更简单,直接,紧凑.

比如说姚明到NBA打篮球,不会英语,可以给姚明找个翻译,这个翻译就是适配器

//客户所期待的接口,目标可以是具体或者抽象的类,也可以是接口

public interface Target {

public abstract void specificRequest();

}

public class Adapter implements Target {

private Adaptee adaptee=new Adaptee();

@Override

public void specificRequest() {

adaptee.request();

}

}

//需要适配的类

public class Adaptee {

public void request() {

System.out.println("老代码中有关请求的代码");

}

}

public class Demo {

public static void main(String[] args) {

Target target=new Adapter();

target.specificRequest();

}

}

如果能事先预防接口不同的问题,不匹配问题就不会发生,有小的接口不统一问题发生时,及时重构,问题不至于扩大,只有碰到无法改变原有设计和代码的情况下,才考虑适配,事后控制不如事中控制,事中控制不如事前控制,适配器模式虽好,但是如果无视它的使用场合而盲目使用,就本末倒置了,所以适配往往在开发后期或者维护时使用它,那么有没有在开发初期就使用它的情况呢?有的,比如公司设计一系统时考虑第三方开发组件,而这个组件的接口和我们系统的接口是不相同的,而我们也没有必要为了迎合它而改变自己的接口,这时也是可以考虑使用适配器模式来解决接口不同的问题.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值