● 适配器(adapter)

In computing, adapter is a hardware device or software component that converts transmitted data from one presentation form to another. The data presentation can be, for example, a message sent between objects in an application or a packet sent through a network.

适配器就是一个接口转换器,它可以是一个独立的硬件接口设备(如独立显卡, 即显示适配器),允许硬件或电子接口(如主板的显示接口)与其它硬件或电子接口(如显示器接口)相连,也可以是信息接口。比如:电源适配器、三角架基座转接部件、USB与串口的转接设备等。

适配器: 通俗一点说就是一种起中间连接作用的配件,使用这种配件的作用在于简化主机的硬件设计,增加主机的通用性和灵活性。

例如:显示卡是使用的最多的适配器了,由于我们能见到的显示器种类太多,他们的分辨率和刷新频率都会有差别,如果让主板上的显示输出口为各种类型的显示器准备好不同的输出信号,那恐怕这块电路板就要比主板还要大了,而且这块主板一生最多也就能配几个类型的显示器使用,多余的就浪费了,于是人们达成共识:主板只提供显示接口搜索,具体的显示类型单独做一块显示卡,形成主板的显示接口-显示卡(即显示适配器)-显示器这样一个硬件连接形式,这样既节省主板的电路,又可以根据需要通过更换显示卡来适应显示器的需要。

常用的适配器还有电源适配器、网卡适配器、网络适配器、打印适配器...等等。

One that adapts, such as a device used to effect operative compatibility between different parts of one or more pieces of apparatus.

适应物,如用于在一件或多件仪器的不同部件之间实现有效兼容性的装置

Android中的Adapter:

Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带。在常见的View(ListView,GridView)等地方都需要用到Adapter。如下图直观的表达了Data、Adapter、View三者的关系:

● 接口(interface)

In computing, an interface is a shared boundary across which two separate components of a computer system exchange information. The exchange can be between software, computer hardware, peripheral devices, humans and combinations of these. Some computer hardware devices such as a touchscreen can both send and receive data through the interface, while others such as a mouse, microphone or joystick are one way only.

三种接口:

人类与电脑等信息机器或人类与程序之间的接口称为用户界面。

电脑等信息机器硬件组件间的接口叫硬件接口。

电脑等信息机器软件组件间的接口叫软件接口。

VGA接口,又叫D-SUB接口。它传输红、绿、蓝模拟信号以及同步信号(水平和垂直信号)。当受到干扰时,显示器可能会出现水波纹状显示。

VGA已经比较老了,虽然现在的台式电脑上仍然保留,但一些显卡、超薄笔记本已经不具备。

为什么Java要把一个只包含抽象方法的类称为接口?

可以这样想象?

接口的设置是为了提供便利, 例如, 插座的插孔也是一种接口, 它就为人们使用电器提供了便利, 比起自己把插头和几根电线接起来, 直接把插头插进插孔要更便利并且更安全.

拿怎么实现这个接口呢? 用一个电器实现呗.

笔记本电脑只需接一个插孔(一个类可实现一个接口)

台式电脑需要多个插孔(一个类也可实现多个接口)

理解什么是适配器(adapter)和接口(interface)的更多相关文章

  1. Objective-C设计模式——适配器Adapter(接口适配)

    适配器模式 适配器模式通俗来讲,其实就是对客户端添加新的类但却不修改客户端和新的类的接口.此时我们需要自己来实现适配,在适配器模式中有Target对象,即客户端所需要的接口对象,Adaptee对象,即 ...

  2. 【原】模式之-适配器Adapter模式

    适配器Adapter模式 适配器模式(Adapter Pattern)把一个类的接口变换成客户端所期待的的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作. 模式所涉及的角色有 ...

  3. 架构设计之设计模式 (一) 适配器(Adapter)---提高复用性

    简介 简介是为了描述一下该模式是干嘛用的,为了让不了解该模式的人看了之后也有一些新的认识. 本文章分为两部分,第一部分主要介绍适配器模式:第二部分介绍该模式与相近模式的异同. 下午一直在讨论设计模式, ...

  4. 设计模式学习心得<适配器 Adapter>

    适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁.这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能. 这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接 ...

  5. Java读源代码学设计模式:适配器Adapter

    适配器模式相关源代码:slf4j-1.6.1.hibernate-3.6.7 大家都知道.log4j是一个广泛使用的日志工具,除此之外.sun公司在JDK中也有自己的日志工具,也就是java.util ...

  6. Java 实现适配器(Adapter)模式

    平时我们会常常碰到这种情况,有了两个现成的类,它们之间没有什么联系.可是我们如今既想用当中一个类的方法.同一时候也想用另外一个类的方法.有一个解决方法是.改动它们各自的接口.可是这是我们最不愿意看到的 ...

  7. 适配器(Adapter)模式

    适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作. 适配器模式的一些其他名称:变压器模式.转换器模式.包装(Wrapper)模式.适 ...

  8. 设计模式--适配器(Adapter)模式

    今天学习另一个设计模式,适配器(Adapter)模式,这是一个共同方向,但有特殊要求,就应用到此设计模式.写到这里,想起很久以前,有写过一篇<ASP.NET的适配器设计模式(Adapter)&g ...

  9. TypeScript学习指南第二章--接口(Interface)

    接口(Interface) TypeScript的核心机制之一在于它的类型检查系统(type-checker)只关注一个变量的"模型(shape)" 稍后我们去了解这个所谓的形状是 ...

随机推荐

  1. JDK(java development kit java开发工具包)的安装

    想要进行Java开发工作,首先我们得进行JDK的下载.安装.配置.测试,如果是新手,我们不妨新建一个文件夹,在文件夹下面新建".java"文件,用记事本打开,写一段简单的java入 ...

  2. python进阶(一)

    一.调试Debugging应用 (1)命令行内运行 $ python -m pdb my_script.py 这会触发debugger在脚本第⼀⾏指令处停⽌执⾏.这在脚本很短时会很有帮助.你可以通过( ...

  3. 通过反射将request中的参数封装到对象中

    import java.beans.PropertyDescriptor; import java.lang.reflect.Method; import java.text.SimpleDateFo ...

  4. thinkphp3.2升级至thinkphp5.0.24

    view文件 修改文件名 把tp3.2.3\app\module\view文件夹下所有文件夹拷贝至tp5\app\module\view 打开cmd命令窗口,cd至view文件夹下,执行dir /b ...

  5. 解决IE11安装时需要“获取更新”(IE11离线安装)

    方法一:说明:目前是针对Windows7 64位操作系统安装! 1. 在C盘下新建文件夹,取名为“IE11”. 2. 将官网下载的IE11离线包放到此文件夹中. 3. win + r 打开运行窗口,输 ...

  6. Kotlin 对象表达式和对象声明

    Kotlin 用对象表达式和对象声明来实现创建一个对某个类做了轻微改动的类的对象,且不需要去声明一个新的子类. 对象表达式 通过对象表达式实现一个匿名内部类的对象用于方法的参数中: window.ad ...

  7. DAY 17常用模块

    一.时间模块:time 1.时间戳:time.time() # 可以作为数据的唯一标识 print(time.time) # 1554878849.8452318 2.延迟线程的运行:time.sle ...

  8. Linux源码包安装程序

    ★安装OS时,建议提前安装开发组件 CentOS 6:Development Tools.Server Platform DevelopmentCentOS 7:Development Tools.D ...

  9. 如何系统地自学 Python?

    最近开始系统的学习Python,以及整理的一些资料.github记录着个人自学 Python 的过程,持续更新.欢迎大家一起来完善这个自学Python学习的项目,给后来者一个参考的学习过程.githu ...

  10. 2 - Binary Search & LogN Algorithm

    254. Drop Eggs https://www.lintcode.com/problem/drop-eggs/description?_from=ladder&&fromId=1 ...