前言
上篇我们讲了抽象类和接口,也说了他们的使用场景,这里我们通过实战感受下他们的使用。引出今天的主题:基于接口而非实现编程。这个原则非常重要,是一种非常有效的提高代码质量的手段,在平时的开发中经常被用到。
首先这里的接口不是指Java的Interface,他是一种抽象的概念,比如服务端提供给前端的接口,只是一种协议和约定,包含Java抽象类和接口。面向接口编程远早于Java的面世,所以他是一种普适的编程思想。
一般来说越抽象越能涵盖更多的场景和变化,抽象的最高境界就是“无象”,正因为无象所以能包罗万象。抽象的使用总结就一句话,将接口和实现相分离,封装不稳定的实现,暴露稳定的接口。(将确定性留给别人,将不确定性留给自己)。
看下面的例子:
我们要实现一个文件存储的功能,需要将文件存储到磁盘中,代码实现如下:
public class FileSave {
public void initDisk(){
System.out.println("初始化磁盘!");
}
public String saveFileToDisk