定义
- 用多个专门的接口,而使用单一的总接口,客户端不应该依赖它不需要的接口
- 一个类对一个类的依赖应该建立在最小的接口上
- 建立单一接口,不要建立庞大臃肿的接口
- 尽量细化接口,接口中的方法尽量少
注意
适度原则,一定要适度!!!否则,导致接口过多,复杂不好管理
优点
符合我们常说的高内聚,低耦合的设计思想,从而使得类具有很好的可读性、可扩展性和可维护性
例子
场景: 有一个 interface 具有 规范有些某些方法
Animal.java
public interface Animal {
void swim();
void eat();
void fly();
}
现在我们要实现一个Dog类
Dog.java
public class Dog implements Animal{
@Override
public void swim() {
}
@Override
public void eat() {
}
@Override
public void fly() {
}
}
我们发现, 狗不会飞啊,fly() 方法只能空实现,是一个无用的方法,如果要实现的接口中有更多的方法,将会导致更多的无用的代码,会导致不容易维护,不容易阅读。
解决办法:接口隔离
将接口细化,拆分
FlyAnimal.java
public interface FlyAnimal{
void fly();
}
EatAnimal.java
public interface FlyAnimal{
void eat();
}
SwimAnimal.java
public interface FlyAnimal{
void fly();
}
Dog.java
public class Dog implements EatAnimal, SwimAnimal{
@Override
public void swim() {
}
@Override
public void eat() {
}
}
这样,狗类就不用实现无用的方法fly(), 接口隔离的原则得以体现