什么是基于接口而非实现编程?

437 阅读1分钟

这里的 “接口” 包括接口和抽象类。

这个原则的另一个表达方式是:“基于抽象而非实现编程”,后者的表达方式更能体现这条原则的设计初衷。我们在做软件开发的时候,一定要有抽象意识、封装意识、接口意识。越抽象、越顶层、越脱离具体某一实现的设计,越能提高代码的灵活性、扩展性、可维护性。

我们在定义接口的时候,一方面,命名要足够通用,不能包含跟具体实现相关的字眼;另一方面,与特定实现有关的方法不要定义在接口中。

“基于接口而非实现编程” 这条原则,不仅仅可以指导非常细节的编程开发,还能指导更加上层的架构设计、系统设计等。比如,服务端与客户端之间的 “接口” 设计、类库的 “接口” 设计。