什么是接口隔离原则
接口隔离原则官方一点的语言描述是指客户端不应该被迫依赖于它不使用的方法,同时一个类对另一个类的依赖应该要建立在最小的接口上面。
怎么理解呢?
首先看前半句“客户端不应该被迫依赖于它不使用的方法”,假如我们现在声明了两个类,一个是A类其中有方法1和方法2,然后我们又因为业务的增长需要定义一个B类,同时B类需要使用到A类中的方法,一般情况下我们就会使用B类去继承A类,这样B类就有了A类的方法,大致的依赖如下:
这样做的好处就是B类继承了A类,B类就拥有了A类中的方法。
但是如果当前 B类 只需要方法1的功能,不需要方法2的功能,我们还使用继承的话就会出现B类被迫依赖A类中不使用的方法2。
如何解决这样的情况
解决如上的情况就是接口隔离原则的后半句了,同一个类对另一个类的依赖应该要建立在最小的接口上面。
可以使用两个接口,一个接口是方法1,另一个接口是方法2,然后有一个类是C类,如果C类需要使用到方法1的功能那么就可以让C类去实现A接口中的方法1,这样就不会被迫依赖它不使用的方法了。
如果后续的业务需要C类有方法2,那么我们只要让C类去实现B接口就可以了。
这就使用到了JAVA的特性了,类中只能单继承但是可以多实现,同时实现多个接口,这样同样就可以做到只添加不修改的情况了。