场景

在编程中我们经常会遇到驴头不对马嘴的情况,比如以前是继承A的接口的对象,现在外部调用的时候需要该对象已B接口的形式来调用
,这个时候我们可以让对象同时集成A和B接口来达到目的,不过,这样又违反了开闭原则,这个时候我们可以使用适配器模式来达到目的。

适配器模式

适配器模式是一种结构模式,可以帮助我们把对象以不同的接口方式来调用。主要由3个角色组成:

  • Target 外部调用要求的接口方式
  • Adapter 中间用来协调的适配器
  • Adaptee 原始对象

    首先,我们让Adapter继承实现Target接口,其次在Adapter中构造Adaptee对象,然后在Target方法中调用Adaptee中相应的方法。过程非常简单。

下面是适配器模式的一个简单实现:

  public interface Target {
void request();
大专栏  java design pattern - adapter pattern}
  public class Adaptee {
public void doSomething() {
System.out.println("Adaptee doSomething!!!");
}
}
  public class Adapter implements Target {
private Adaptee adaptee; public Adapter(Adaptee adaptee) {
this.adaptee = adaptee;
} @Override
public void request() {
this.adaptee.doSomething();
}
}
  public class Test {
public static void main(String[] args) {
Target target = new Adapter(new Adaptee());
target.request();
}
}

总结

适配器是一种非常简单的设计模式,一般是用来在后期调用时发现对象的接口不匹配的时候使用,相当于一种“补充”的手段
在双方都不太容易修改的时候可以使用适配器模式。

参考资料

Adapter pattern

Design Patterns - Adapter Pattern

最新文章

  1. redis+cookies实现session机制(解决 手机浏览器不自动回传cookies导致session不可用问题)
  2. nyoj 下三角矩阵
  3. Git基本命令行操作
  4. Android Support Library控件详细介绍之RecyclerView
  5. mockjs学习总结(方便前端模拟数据,加快开发效率)
  6. IntellJ 13.x JPA Persistence Sample
  7. iOS开发——根据Url 获取图片尺寸
  8. MongoDB 的创建、查询、更新、删除
  9. apache 网址重定向
  10. Linux 常用命令使用方法大搜刮(转)
  11. Struts2系列笔记(2)---Struts.XML
  12. HttpReponse
  13. 测试ik分词效果
  14. elastastic search
  15. DEM数据及其他数据下载
  16. 测试单元测试完毕关闭jvm
  17. python3爬虫(find_all用法等)
  18. Ubuntu16.04安装Zabbix3.2(快速安装教程)
  19. 委托、Lambda表达式、事件系列07,使用EventHandler委托
  20. oracle 判断字符串是否包含指定内容

热门文章

  1. html标签title属性值包括处理
  2. 深度学习数据集MNIST ImageNet COCO PASCAL VOC介绍
  3. 第一个----关于GPIO的总结
  4. Flink(二) —— 部署与任务提交
  5. Angular(一)
  6. win10下使用UEFI安装Linux Mint18
  7. mysql中datetime时间转字符串(避免java层映射为数字串)
  8. [LC] 289. Game of Life
  9. 5)void万能指针
  10. RubyMain2016.2配置自动同步代码到服务器功能