适配器模式-如何把usb插到插座上
2024-08-30 19:49:30
前言
- 下面所写的内容不是实际的业务场景, 也可能不符合正常的生活习惯, 或者不满足一些人的口味
- 所写的内容包括之前的帖子,只是为了方便大家更好的记住这个设计模式,实际生活中要灵活应用
- 设计模式重思想,要活用
- 使用场景: 维护旧代码, 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
最新文章
- KEIL MDK STM32如何建立工程
- JPA oneToMany 级联更新
- JS匿名函数的理解
- Activator.CreateInstance 方法 (Type) 的用法
- StreamWriter
- BZOJ1680: [Usaco2005 Mar]Yogurt factory
- poj 1274 The Perfect Stall(二分图匹配)
- Soft Drinking(水)
- CSDN Markdown简明教程4-UML画画
- mongodb (一)
- c语言结构体指针必须初始化
- MYSQL数据库增量备份
- bootstrap table 和 x-editable 使用方法
- reuters-多分类问题
- win10图片恢复默认照片查看器
- Qt做发布版,解决声音和图片、中文字体乱码问题(需要在main里写上QApplication::addLibraryPath(";./plugins";)才能加载图片,有图片,很清楚)
- 离线人脸识别C#类库分享 虹软2.0版本
- 牛客网某比赛 I 小乐乐学博弈 博弈论
- Autofac创建实例的方法总结[转]
- (转)在GitHub多个帐号上添加SSH公钥
热门文章
- code1316 文化之旅
- 10个最新手机美食APP界面设计欣赏
- Part3_lesson1---ARM汇编编程概述
- es学习-索引管理
- YII2 rules 规则验证器
- javascript总结20: 前端必读,浏览器内部工作原理(转)
- CodeForces 288A Polo the Penguin and Strings (水题)
- KindEditor3.x整合教程-Xproer.WordPaster
- JavaScript中两种类型的全局对象/函数【转】
- fwrite与fread