接口的本质及其工作原理是什么?

2020-06-11 21:04发布

1条回答
老测试 - 华为资深测试
2楼 · 2020-06-12 13:58

接口有下面几个好处,体会一下:

定义了接口,有助于功能方面的拆分,将代码更加规范化,可便于维护和管理。

定义了接口,就有了规则,大家可以按照规则编写自己的实现类,每个人都有自己的实现方案。你有你的,别人有别人的,你的实现了某个功能,后期别人可以拿个另一种实现方案代替你的。

定义了接口,使用方不再关注具体的实现,只需要关注接口,及暴露的方法。趁此机会,可将实现方案进行隐藏。

定义了接口,是逐步走向设计模式的开端,在程序设计中引入模式,便于程序的维护和扩展


再举例体会一下

让我们来想象一下你是设计城市的主管人。假设你需要创造很多类型的马路和标志。有泥路(因为投资回报率不够大,不用太好),后方道路(住宅区宽度较窄)和高速公路(为避免堵车)。 有交通信号灯(组织流量),速度标志(通知安全速度)和交通线路(以防意外碰撞)。

你可以说这条路给一辆小车,卡车或者或者从一个安全点转移到另一个安全点。标志能够让他们知道要去哪里。

你也可以说城市是一个环境,道路是一个接口,包含了一个公共特征:它允许车辆(小车,卡车,或货车)在上面行驶,并且可以添加标志(交通灯,速度标志和交通线路)。

每种类型的路(泥路,后方道路或高速公路)将实现不同类型的标志。一些高速公路不需要交通灯但需要速度标志和线路指示。一些泥路不需要交通线但需要交通灯和速度标志。

一条路是一个接口,接受一种交通工具(同样是个接口),并且能让交通工具在上面行驶。

每个国家都会有它自己的道路实现。在澳大利亚,你将会在左侧道路行驶,还有不同的标志比如箭头交通灯。在巴西,你将会在右侧道路行驶,但没有箭头交通灯。

许多供应商和国家会以不同的方式实现交通工具,但是有通用接口标准:

  • 都有轮子;

  • 能适应道路;

  • 都有车窗,以便司机看到标志。

如果车辆没有正确地实现标准接口——如果说一辆车可以飞或者不能开——那么它将不能在公共交通中有效运行。这就是为什么当我们说到环境中一般类型的连接时,接口(道路和交通工具)在架构中的交流那么有用的原因,而不是使用具体的术语(澳大利亚的泥路,或者巴西的卡车和货车)。

一个接口可以有效地归纳属性。它提供通讯能供性,而不用考虑有多少种接口类型的实现。

一个真实的生活对象或者环境提供另一个对象的服务都可以声明为某种形式的“接口”。


计算机的视频图形阵列(V.G.A.)的连接头同样也是个接口。它可以接通不同类型的屏幕。当暴露了 “V.G.A.” 公共连接方式后,任何屏幕生产商都能生产无缝连接这种接口的产品。

接口代表了能力的概念,能够将某些东西与特定的特征连接起来。其他的任何东西都可以不同,只要连接方式符合相同的标准格式。


相关问题推荐

  • 回答 157

    虽然从事开发行业的女生越来越多,但女生的比例还是远比不上男生。软件测试的男女生比例则基本相当,软件测试要求细心、耐心,大部分女生也是比较适合学的。而且软件测试课程分为手工测试和自动化测试,手工测试分为功能测试、性能测试、接口测试。自动化测试...

  • 回答 121

    需要。很多人当初抱着测试不需要懂代码,才选择了这个行业,这个就要看对自己的职业定位了,是止步于月薪过万就可以了,还是往20k、30k去突破,如果这样的话,是肯定要会接口、会自动化,就必然要涉及到代码。如果真的看不懂代码,实际的测试后期的工作会出现...

  • 回答 91

    在我看来游戏开发挺难的,尤其像手游一类的还有网游,里面有很多的程序代码而且伤神又费力,不过也有女生在这方面做的很好的,如果你感兴趣,非常想学,可以试试

  • 回答 80

    软件测试专业现在很火热,很缺少人才,25岁学软件测试能学会,就业薪资也高,工作也相对轻松

  • 回答 11
    已采纳

    测试类型有:功能测试,性能测试,界面测试。功能测试在测试工作中占的比例最大,功能测试也叫黑盒测试。是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。采用黑盒技术设计测试用...

  • 回答 15
    已采纳

    这个其实和接口测试的场景密不可分的,比如说:外部接口测试:    必须先接口测试通过了,才能执行功能测试子系统或者各个模块之间的联调测试:    必须各子系统后台代码完成,并提供接口才可以完成测试,一般来说都要求各子系统功能测试通过后再进行...

  • 回答 6
    已采纳

    这个是会因为公司的架构不同而不同的,并不是固定的,但是一般是会有专门的测试部门,或者叫质量保证部,也有可能是叫别的名字。

  • 回答 43
    已采纳

    移动端测试,包括App兼容性测dao试,7*24小时稳定性测试,功耗性能测试,UI测试,交互测试等,课程主要学习的内容有:1、功能测试主要包括计算机基础、软件测试核心理论、Linux、数据库,学习目标是掌握软件测试核心理论,结合Linux、数据库等可实现移动端、w...

  • 回答 1

    标题  1. 首先要做一个标题党(此标题党非彼标题党)。标题一定要清晰简洁易理解,不应该臃长  2. 尽量前缀要规范,例如模板: [Product][Version]_[Feature]_[Title],这样描述会很清晰,也方便查找  3. 缺陷的标题一定要描述在什么情况下发生了什么问...

  • 回答 1

    1、 缺陷报告可以记录缺陷2、可以对缺陷进行跟踪管理3、可以对缺陷报告进行分类 总结 统计

  • 回答 1

    1、缺陷编号(Defect ID),提交BUG的顺序。2、缺陷标题(summary),简明扼要的说明一下这个BUG。3、缺陷的发现者(DetectedBy) ,一般是自己。4、发现缺陷的日期(Detected on date),一般是当天。5、缺陷所属的模块(subject), 在测试哪个模块的时候发现的BUG...

  • 回答 1

    缺陷标题好的缺陷标题需要让相关人员一目了然,一般建议的格式是条件+失败。缺陷类型缺陷类型也是根据具体的项目而定的。但一般情况下分为功能、界面、建议。重现步骤重现步骤的编写规则可以参考测试用例中的操作步骤 ,一定要足够详细、说明清楚问题的操作顺...

  • 回答 1

    工具:NoSQLUnitJsTestDriverQTRunnerVenusFluintBuster.JSSQLUnitECUTQTestlibUnitilsgreatestDbUnitAbbotGoogleTest框架:JUnitMoqJSCaptureMockCUnitPyUnitCppUTestCppUnitzCUTcipra

  • 回答 1

    JunitTestNGGoogleTestpytestunittestJmockitJaCoCogcov、lcov、gcovrCoverage.pyEvoSuiteDiffblue Cover

  • 回答 1

      React Hooks测试库( Testing Library)是一个简单而完整的React Hooks测试工具。  React Hooks测试库让用户可以为React钩子创建简单的测试工具,自定义钩子的输入和检索输出,以处理在功能组件体内运行的情况。  使用React Hooks,用户不必为了测试而去担...

  • 回答 1

    1、单元测试注重代码逻辑,接口测试注重业务逻辑;2、单元测试的粒度最小,是测试最小独立的单元模块(不依赖其他模块);接口测试不是,会覆盖很多;3、单元测试是白盒测试,接口测试是黑盒测试;4、单元测试关注的是代码的实现和逻辑,测试范围较小,保证实...

没有解决我的问题,去提问