前言

  • 下面所写的内容不是实际的业务场景, 也可能不符合正常的生活习惯, 或者不满足一些人的口味
  • 所写的内容包括之前的帖子,只是为了方便大家更好的记住这个设计模式,实际生活中要灵活应用
  • 设计模式重思想,要活用
  • 使用场景: 维护旧代码, spring aop ..

我们的目标:

  • 把usb插到插座上, 但是直接也插不进去, 所以我们需要一个转接头, 这个玩意儿就是我们的适配器, 他既有usb口,又有插头, 所以我们就可以通过它,把usb连接到插座上

代码实现

public interface Socket {
/**
* 普通插口
*/
public void insert(Socket socket);
}
public class SocketIml implements Socket{
/**
* 插座上只有普通插口
*/
@Override
public void insert(Socket socket) {
System.out.println("插到插座里++++++++");
}
}
public interface Usb {
/**
* usb接口只能插入usb
*/
public void insert(Usb usb);
}
public class UsbImp implements Usb{
/**
* usb上只有usb的接口
*/
@Override
public void insert(Usb usb) {
System.out.println("插到usb里+++++++++");
}
}
public class TransferImp implements Usb, Socket{

    @Override
public void insert(Socket socket) { } /**
* usb插到接口上, 我再转接插到插座上
* @param usb
*/
@Override
public void insert(Usb usb) {
Socket socketIml = new SocketIml();
socketIml.insert(socketIml);
}
}
public class UsbInSocketTest {
/**
* 客户要求 我只传usb, 最终你还得让我插到插座里
*/
@Test
public void usbInsertSocketTest(){
Usb usb = new UsbImp(); //usb实体对象
Usb adapter = new TransferImp();//转接器
//usb插到转接器上最终插到插座里
adapter.insert(usb);//插到插座里++++++++
}
}

代码路径

https://github.com/offline7LY/designpattern/tree/master/adapter

最新文章

  1. KEIL MDK STM32如何建立工程
  2. JPA oneToMany 级联更新
  3. JS匿名函数的理解
  4. Activator.CreateInstance 方法 (Type) 的用法
  5. StreamWriter
  6. BZOJ1680: [Usaco2005 Mar]Yogurt factory
  7. poj 1274 The Perfect Stall(二分图匹配)
  8. Soft Drinking(水)
  9. CSDN Markdown简明教程4-UML画画
  10. mongodb (一)
  11. c语言结构体指针必须初始化
  12. MYSQL数据库增量备份
  13. bootstrap table 和 x-editable 使用方法
  14. reuters-多分类问题
  15. win10图片恢复默认照片查看器
  16. Qt做发布版,解决声音和图片、中文字体乱码问题(需要在main里写上QApplication::addLibraryPath("./plugins")才能加载图片,有图片,很清楚)
  17. 离线人脸识别C#类库分享 虹软2.0版本
  18. 牛客网某比赛 I 小乐乐学博弈 博弈论
  19. Autofac创建实例的方法总结[转]
  20. (转)在GitHub多个帐号上添加SSH公钥

热门文章

  1. code1316 文化之旅
  2. 10个最新手机美食APP界面设计欣赏
  3. Part3_lesson1---ARM汇编编程概述
  4. es学习-索引管理
  5. YII2 rules 规则验证器
  6. javascript总结20: 前端必读,浏览器内部工作原理(转)
  7. CodeForces 288A Polo the Penguin and Strings (水题)
  8. KindEditor3.x整合教程-Xproer.WordPaster
  9. JavaScript中两种类型的全局对象/函数【转】
  10. fwrite与fread