介绍:
适配器模式,简单来说就是把原来不适配的两样东西,通过适配,使两样东西适配起来使用。现实生活有很多例子,比如两个口的插座,但是电器是3口的,就可以通过排插,让电器用起来,手机充电用的是插头,现在用电脑USB接口接点线也可以连接和充电,这也是适配器的使用,而在代码上也是如此,存量的一些功能可能需要进行新功能扩展,但是存量功能不满足,需要进行些许改造才能满足,这时候可以考虑使用适配器模式进行代码改造。
背景:
有一个功能,源类是传入账户余额,然后显示他存款有多少人民币。现在希望可以通过汇率转换,查看他有多少美元,日元。
类适配器模式:
RMB类(源类):
public class Money_RMB {
public BigDecimal showRmb( String money){
BigDecimal bigDecimal = new BigDecimal(money);
System.out.println("账户余额:" + bigDecimal +"人民币");
return bigDecimal;
}
}
美元接口类:
public interface Money_US {
public BigDecimal showUS(String money);
}
美元适配器:
/*
* @description: 类适配器模式
* @author: diaogh
* @dateTime:
*/
public class ClassAdatper extends Money_RMB implements Money_US{
@Override
public BigDecimal showUS( String money) {
BigDecimal bigDecimal = new BigDecimal(money);
//现在人民币和美元汇率是 6.4:1
System.out.println("账户余额:" + bigDecimal.divide(new BigDecimal("6.4")) +"美元");
return bigDecimal;
}
}
测试方法及效果:
public static void main(String[] args) {
ClassAdatper classAdatper = new ClassAdatper();
classAdatper.showRmb("100");
classAdatper.showUS("100");
}
总结:
类适配模式:需要实现的目标功能抽象成接口方法,适配器中通过继承获取源类方法,进行适配来实现目标功能