面向接口编程并不是一种新的编程范式。三大范式有面向过程编程、面向对象编程和函数式编程。
这个狭义的接口,即 interface 关键字。
广义的接口可以是任何一个对外提供服务的出口,比如提供数据传输的 USB 接口、淘宝网对其他网站开发的支付宝接口。
接口的作用
接口定义一套规范,描述一个“物”的功能,要求如果现实中的“物”想成为可用,就必须实现这些基本功能。
接口这样描述自己:
“对于实现我的所有类,看起来都应该像我现在这个样子。”
采用一个特定接口的所有代码都知道对于那个接口会调用什么方法。这便是接口的全部含义。
接口常用来作为类与类之间的一个“协议”。接口是抽象类的变体,接口中所有方法都是抽象的,没有一个有程序体。接口除了可以包含方法外,还能包含常量。
接口不关心实现,因为接口为抽象而生,接口也是一种契约。
因此在程序里,接口的方法必须被全部实现,否则将报 fetal 错误。
通常在大型项目里,会把代码进行分层和分工。核心开发人员和技术经理编写核心的流程和代码,往往是以接口的形式给出,而基础开发人员则针对这些接口,填充代码,如数据库操作等。这样,核心人员把更多精力投入到了技术攻关和业务逻辑中。前端针对接口编程,只管在 Action 层调用 Service,不管实现细节;而后端则要负责 Dao 和 service 层接口实现。这样,就实现了代码的分工和合作。