接口的一些理解

什么是接口?

接口从更深层次的理解,应是定义(规范,约束)与实现(名实分离的原则)的分离。

不要把接口狭义的理解为interface,应该理解广义些,就是对外提供的规则,凡是对外暴露的都可以是接口。

接口的本身反映了系统设计人员对系统的抽象理解。

接口应有两类:

  • 第一类是对一个体的抽象,它可对应为一个抽象体(abstract class);

  • 第二类是对一个体某一方面的抽象,即形成一个抽象面(interface);

一个体有可能有多个抽象面。

抽象体与抽象面是有区别的。

所以,接口就是

  1. 某种服务对外的窗口,你如果需要这个服务,唯一的方法就是去窗口办理。

  2. 对于不同的服务,你需要严格按照这个窗口的规定递交材料。

  3. 你不用知道窗口里面的工作人员帅不帅,漂亮不漂亮,有没有996,年薪多少,有没有五险一金,他们是怎么给你办事的,这些通通都雨你无瓜

  4. 你只需要在你的这次服务完结后,拿到你所需要的办事结果即可,可能当场能拿,可能要过一段时间,这时你可以先搬你的砖。(当然,有些接口设计的不好的话,会强行让你等在那里,什么气候办完什么时候让你走,好气哦)

  5. 不同单位的窗口可能看上去差不多,甚至要求你递交的材料都一样,但是办的事情却完全不一样,办完事情后给你的结果也可能不一样。

接口在开发项目中有什么用途

解耦

降低代码耦合度,提高代码复用性

你调函数是不是代表函数里有方法体?如果该方法没有方法体呢?架构师写接口是给程序员规定了某个方法的返回值,标识符和参数列表的,这些程序员必须按照架构师规定的格式来写函数,才能够给其他程序员调用,所以你必须继承接口,否则代码审计会判定不合格。

你写个接口,然后写一个实现类,用到的时候直接调用接口,接口找实现类,同样的业务逻辑,你只要写一个类就可以了,而如果写死在用的类里,那么有多少个类,这个方法就要被重写多少遍。而且如果需求有改动,你只需要改动接口的实现类,其他的不用改变,如果写在代码里的,那么所有的你得全改一次。

实际开发中使用接口的三种形式

  • 进行标准设置
  • 表示一种操作的能力
  • 暴漏远程方法视图

抽象类和接口之间的区别

共性:它们都是不断抽取出来的抽象非概念
区别:
1、抽象类只能被单继承、接口可以被多实现,避免了单继承的局限性。
2、抽象类中可以定义抽象方法,和非抽象方法,它可以用于定义体系的基本共性的内容。接口中只能定义抽象方法,它主要用于对象的功能的扩展。
3、抽象类是继承关系,是is a关系,接口是实现关系是like a关系。
4、抽象类中的成员修饰符都是自定义的,接口中的修饰符都是固定的。

什么时候使用

接口被运用于比较常用的功能,便于日后的维护或者添加删除方法;

而抽象类更倾向于充当公共类的角色,不适用于对里面的代码进行修改;当子类和父类之间存在有逻辑上的层次结构时,推荐使用抽象类;

当用于不同类之间,定义不同类之间的通信规则,希望支持差别较大的两个或者更多对象之间的特定交互行为时,应该使用接口。

posted @ 2021-11-02 10:59  贪玩的阿柒  阅读(199)  评论(0编辑  收藏  举报