原文链接:http://www.studyshare.cn/blog/details/1180/0
一、概念
适配器模式:作为两个不兼容接口之间的桥梁,可以将一个类的接口转换为我们希望的另外一个接口,使用适配器模式可以让原本由于接口不兼容而不能一起工作的那些类可以一起工作。如下图所示:

java开发工具下载地址及安装教程大全,点这里。
更多深度技术文章,在这里。
二、应用场景
1、当调用双方都不太容易修改,但又为了复用现有组件,那么可以使用适配器模式进行转换。
2、在系统中接入第三方组件的时候,例如日志组件、支付组件等。可使用适配器模式。
三、案例
此处以接入一个第三方支付组件为例,详细说明适配器模式的使用方式。
假如现在需要开发一个支付功能,对外暴露一个接口,希望这个支付接口可以给其他系统提供多种支付功能(微信支付、支付宝支付、银联支付等),这是一种典型的适配器模式使用场景,第三方的支付组件(微信支付、支付宝支付、银联支付)通过适配器转换为提供出去的统一接口被调用。其他系统只需要调用暴露的统一接口即可。
代码实现:
1、支付宝、微信、银联支付组件


2、统一支付接口

3、适配器类

4、测试类

总结:在合适的场景合理使用适配器模式,上面适用场景1提出在调用双方都不方便修改的时候,例如为了适应自己的业务系统去要求支付宝修改这是不现实的。但是如果是本公司内部的两个或者多个业务子系统之间,能修改的情况尽可能修改,因为使用过多的适配器模式去实现无疑会增加系统的复杂性,不利于代码可读性,系统可维护性,此时设计人员需考虑对系统进行重构。
java开发工具下载地址及安装教程大全,点这里。
更多深度技术文章,在这里。
原创文章,转载请注明出处。