关于顶层接口,中层抽象类,下层实现类的理解
我们在异常框架或者集合框架中常常可以看到底层都是一些接口,然后中间是一些抽象类,然后下层就是一些实现类的现象,我们为什么要这样创建一个框架体系?
这里我们就以集合框架中的Collection分支进行解释:
首先:我们的Collection是一个接口,它表示实现了这个接口的类的所创建的集合对象中就只能加入有序的,以及不可重复的数据,这个时候我们就将根据两个特点来声明一些方法,这些方法我们只是在Collection接口中声明,但是我们并不去具体的实现,这个时候我们要到具体的实现类中去具体的实现这些方法
其次: 我们在我们的具体的实现类中去实现这些方法的时候虽然是两个不同的实现类可能大多数方法的具体实现都是不一样的,但是也是有可能会遇到我们的两个不同的实现类中可能有一些方法的实现时完全一样的,这个时候我们如果在每个实现类中都要去单独的写这个方法的具体实现显然就是有一些浪费时间,根本就没有必要,
最后: 我们为了解决上面的这个问题,这个时候我们就提出了在接口和实现类中间闯进一些抽象类,如果我们两个不同的实现类有十个方法具体的实现不相同,但是有一个方法具体的实现是一模一样的,那么这个时候我们就可以让这两个不同的实现类都继承自我们的同一个抽象类,这个时候我们在抽象类再继承我们的上一级的接口,然后我们在这个抽象类中声明我们两个实现类中不同实现方式的方法,并不重写,然后再重写我们的两个不同的实现类中实现一样的方法,这个时候我们的两个不同实现类都继承了这个抽象类,那么这个时候我们的这两个不同的实现类就都继承了这个抽象类中的这个重写过的方法,这两个不同的实现类都可以进行使用,这样就避免了很多的重复性工程,也算是对框架体系的一种优化
总结:
所以我们说顶层使用接口,中层使用抽象类,下层使用具体实现类的方式避免了很多代码的重复书写,是框架体系的一种优化