适配器模式,简单来说就是把原来不适配的两样东西,通过适配,使两样东西适配起来使用。现实生活有很多例子,比如两个口的插座,但是电器是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"); }
类适配模式:需要实现的目标功能抽象成接口方法,适配器中通过继承获取源类方法,进行适配来实现目标功能