面向接口编程原理
“基于接口而非实现编程”这条原则的英文描述是:“Program to an interface, not an implementation”。我们理解这条原则的时候,千万不要一开始就与具体的编程语言挂钩,局限在编程语言的“接口”语法中(比如 Java 中的 interface 接口语法)。这条原则最早出现于 1994 年 GoF 的《设计模式》这本书,它先于很多编程语言而诞生(比如 Java 语言),是一条比较抽象、泛化的设计思想。
这条原则能非常有效地提高代码质量,之所以这么说,那是因为,应用这条原则,可以::
- 将接口和实现相分离
- 封装不稳定的实现
- 暴露稳定的接口
上游系统面向接口而非实现编程,不依赖不稳定的实现细节,这样当实现发生变化的时候,上游系统的代码基本上不需要做改动,以此来降低耦合性,提高扩展性。
实际上,“基于接口而非实现编程”这条原则的另一个表述方式,是“基于抽象而非实现编程”。后者的表述方式其实更能体现这条原则的设计初衷。在软件开发中,最大的挑战之一就是需求的不断变化,这也是考验代码设计好坏的一个标准。越抽象、越顶层、越脱离具体某一实现的设计,越能提高代码的灵活性,越能应对未来的需求变化。好的代码设计,不仅能应对当下的需求,而且在将来需求发生变化的时候,仍然能够在不破坏原有代码设计的情况下灵活应对。而抽象就是提高代码扩展性、灵活性、可维护性最有效的手段之一。
https://www.cnblogs.com/appsucc/p/13034479.html#:~:text=面向接口编程原理.%20“基于接口而非实现编程”这条原则的英文描述是:“Program%20to%20an%20interface%2C%20not%20an%20implementation”%E3%80%82.,的《设计模式》这本书,它先于很多编程语言而诞生(比如%20Java%20语言),是一条比较抽象、泛化的设计思想%E3%80%82.%20这条原则能非常有效地提高代码质量,之所以这么说,那是因为,应用这条原则,可以%3A%3A%20将接口和实现相分离.%20封装不稳定的实现.%20暴露稳定的接口.%20