何为"接口"编程

基于接口而非实现编程.

英文: Program to an interface, not an implementation

这条原则是一条比较抽象,泛化的设计思想.

接口的本质: 接口就是一组协议或者约定, 是功能提供者给使用者的一个"功能列表”

接口编程

这条原则能非常有效地提高代码质量.

接口编程是将接口与实现相分离, 封装不稳定的实现, 暴露稳定的接口.

上游系统面向接口而非实现编程, 不依赖不稳定的实现细节. 当实现发生变化的时候, 上游系统基于上不需要做改动, 以些来降低耦合性,提高扩展性.

在软件开发中, 最大的挑战之一就是需求的不断变化, 这也是考验代码设计的好坏的一个标准.

越抽象, 越顶层,越脱离具体某一实现的设计, 越能提高代码的灵活性, 越能应对未来的需求变化.

好的代码设计, 不仅能应对当下的需求, 而且在将来需求发生变化的时候,仍然能够在不破坏原有代码设计性况下奶灵活应对.

而抽象就是提高代码扩展性, 灵活性, 可维护性最有效的手段之一

接口编程要点

  1. 函数的命名不能暴露任何实现细节
  2. 封装具体的实现细节
  3. 为实现类定义抽象接口.

Tip: 做开发的时候, 一定要有抽象意识, 封装意识, 接口意识. 在定义接口的时候, 不要暴露任何实现细节.

接口的定义只表明做什么, 而不是怎么做.

什么时候使用接口

任何事物都有两面, 一味使用接口编程会导致不必要的开发负担.具体要搞清楚我们为了解决什么问题.

如果业务场景中, 某个功能只有一种实现方式, 未来也不可能被其它实现方式替换,则我们没必要设计接口.也没必须基于接口编程.直接使用类即可.

如果业务场景中, 某个功能可能被两种以上, 不