接口隔离原则定义
用多个专门的接口分别定义方法,而不是使用一个总的接口定义一堆方法
- 一个类对应一个类的依赖应该建立在最小的接口上
- 尽量细化接口,接口中的方法尽量少
- 不要建立庞大臃肿的接口类
意思就是我们定义接口时候一个接口内定义的方法不能太臃肿 不能太多,一个接口中应该尽量少的贴合实际的去定义方法,避免在不同场景使用接口的时候实现一些根本用不到的方法,造成代码臃肿,可读性差,设计接口时候应该多思考,尽可能多考虑到不同的情况
优点:
- 符合我们常用的高内聚低耦合的思想,使我们的类具有很好的可读性,可扩展性,可维护性。
下面我们以一个例子详细理解接口隔离原则
我们先不遵循接口隔离原则,创建一个动物接口类,定义吃,飞行,游泳等行为,然后定义一个狗类实现以上接口,狗是不会飞行的,但也必须强制实现这一方法,这样定义是不可取的。
public interface Animal {
public void eat();
public void fly();
public void swim();
}
public class Dog implements Animal {
@Override
public void eat() {
}
@Override
public void fly() {
}
@Override
public void swim() {
}
}
我们遵循接口隔离原则,拆分以上动物行为类为具体的接口,根据动物具体行为选择性实现接口是比较可取的选择,实现如下:
public interface EatAnimal {
public void eat();
}
public interface FlyAnimal {
public void fly();
}
public interface SwimAnimal {
public void swim();
}
public class Dog implements EatAnimal,SwimAnimal {
@Override
public void eat() {
}
@Override
public void swim() {
}
}
这样做,不同动物可以精准实现其行为,不会有臃肿的代码产生,所以应该根据实际情况尽可能遵循接口隔离原则,让代码更具易读性和简洁性