接口隔离原则是指用多个专门的接口,而不使用单一总接口,客户端不应该依赖它不需要的接口,这个原则指导我们在设计一个接口的时候要注意以下几点:
- 一个类对另一个类依赖应该建立在最小的接口之上。
- 建立单一接口, 不要建立庞大臃肿的接口
- 尽量细化每个接口,接口中的方法尽量少(不是越少越好,而是要适度)
接口隔离原则完全符合高内聚、低耦合的思想,可以是其拥有更好的扩展性、可读性和可维护性,下面已animal动物类为例:
public interface IAnimal {
void eat();
void fly();
void swim();
}
public class bird implements IAnimal {
@Override
public void eat() {
}
@Override
public void fly() {
}
@Override
public void swim() {
}
}
public class Dog implements IAnimal {
@Override
public void eat() {
}
@Override
public void fly() {
}
@Override
public void swim() {
}
}
这时候有的动物不需要飞行,但是我们的接口也实现过来了,针对这个问题,我们可以把每个行为都生成一个接口,然后谁需要,谁就直接实现。
public interface IEatAnimal {
void eat();
}
public interface IFlyAnimal {
void fly();
}
public interface ISwimAnimal {
void swim();
}
public class Dog implements IEatAnimal,ISwimAnimal {
@Override
public void eat() {
}
@Override
public void swim() {
}
}
我们在日常开发中,接到需求之后一定不要急于动手,而是把之后变化考虑到位