适配器模式-如何把usb插到插座上
前言
- 下面所写的内容不是实际的业务场景, 也可能不符合正常的生活习惯, 或者不满足一些人的口味
- 所写的内容包括之前的帖子,只是为了方便大家更好的记住这个设计模式,实际生活中要灵活应用
- 设计模式重思想,要活用
- 使用场景: 维护旧代码, 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
适配器模式-如何把usb插到插座上的更多相关文章
- 2018-8-10-WPF-判断USB插拔
title author date CreateTime categories WPF 判断USB插拔 lindexi 2018-08-10 19:16:53 +0800 2018-8-5 13:0: ...
- RS485转USB插电脑上通讯不上
在确定没有其他问题时,基本可以确定是干扰问题,换个24V电源试试,不要用原来的线 485接口确定,好坏通过两个相反对接,发送信息,两边一致,就可以
- USB Type-C,接口上的大统一?
这款 24-pin 连接器的机械设计反应了设计人员从 Micro-B 连接器上获得的历史教训,它无需确定插入的正反方向并可实现 10000 次的插拔.使用者再也不需要担心“哪头上,哪头下”,因为 US ...
- TL-WDN5200H无线usb网卡在Linux上的使用
买了个TL-WDN5200H无线usb网卡,但是发现它居然不支持Linux,但是我有时需要在Linux上使用,这就尴尬了.于是到网上搜索资料,终于解决了这个问题. 首先编译安装:https://git ...
- 使用usb+preseed在virtualbox上安装ubuntu(一)
1.制作usb boot盘,在ubuntu上使用startup disk creater将ubuntu-server12.04.iso写入到usb中: 2.修改syslinux文件夹中的syslinu ...
- QTC++监控USB插拔
#if defined(Q_OS_WIN) #include <qt_windows.h> #include <QtCore/qglobal.h> #include <d ...
- (已解决)Arduino mega2560 R3插在电脑上没有反应
OK,话不多说.网上找了一些资料,感觉都说的不够清晰.自己琢磨了下,有了一个简单粗暴的方法. 步骤1:插上Arduino mega2560板子.没有反应. 步骤2:我的电脑-管理-设备管 ...
- USB插拔检测程序
一.手动添加ON_WM_DEVICECHANGE()消息 二.添加头文件#include <Dbt.h> 三.定义设备的GUID static const GUID GUID_DEVINT ...
- Vysor Pro1.9.3破解,连接 USB 数据线在电脑上远程控制 Android 手机平板/同步显示画面
Vysor PRO 破解方法 1.下载Vysor Pro, Vysor Pro下载地址 ,chrome版需要挂梯子. 下载后,能连接,但是清晰度太低,能使用的功能也很少,下面我们就开始来破解它. ...
随机推荐
- 面向对象的JavaScript-004
1. // Below is an example of how to use Object.create() to achieve classical inheritance. This is fo ...
- [C++] Variable storage space
Variable storage space
- Luogu 2000 拯救世界
从胡小兔的博客那里过来的,简单记一下生成函数. 生成函数 数列$\{1, 1, 1, 1, \cdots\}$的生成函数是$f(x) = 1 + x + x^2 + x^3 + \cdots$,根据等 ...
- 修改字段注释modify
alter table test1 modify 字段名 类型 comment '修改后的字段注释'; ALTER TABLE tc_activity_miaosha MODIFY `validity ...
- Sed命令n,N,d,D,p,P,h,H,g,G,x解析3
摘自:https://blog.csdn.net/WMSOK/article/details/78463199 Sed命令n,N,d,D,p,P,h,H,g,G,x解析 2017年11月06日 23: ...
- django model ValueQuerySet QuerySet 转换成JSON
这里我有4个字段需要使用外键,那么在调取数据的时候就可以使用两个'_'进行调取,当然条件必须需要从前端传进来 models.py class HostInfo(models.Model): host_ ...
- 快捷生成getter和setter方法
选中要生成的名称 shift+alt快捷弹出选款,然后箭头下,然后Alt+A,点击ok
- LightOJ 1098(均值不等式,整除分块玄学优化)
We all know that any integer number n is divisible by 1 and n. That is why these two numbers are not ...
- XJOI3602 邓哲也的矩阵(优先队列优化DP)
题目描述: 有一个 n×m的矩阵,现在准备对矩阵进行k次操作,每次操作可以二选一 1: 选择一行,给这一行的每一个数减去p,这种操作会得到的快乐值等于操作之前这一行的和 2: 选择一列,给这一列的每一 ...
- ExtractStrings字符串截取
//分割字符串 ExtractStrings var s: String; List: TStringList; begin s := 'about: #delphi; #pascal, ...