一.什么是接口隔离原则
- 接口隔离原则就是一个类对另一个类的依赖应该建立在最小的接口上。一个接口相当于剧本中的一个角色,而此角色由哪个演员来演相当于接口实现。因此,一个接口应当简单地代表一个角色,而不是多个角色。如果系统涉及多个角色,那么每一个角色都应该由一个特定的接口代表。没有关系的接口合并在一起,形成一个臃肿的"肥"接口,这是对角色和接口的污染。
二.代码实现
- 将动物行为接口分作
IEatAnimalAction
,IFlyAnimalAction
,ISwimAnimalAction
,让Dog
类实现ISwimAnimalAction
,IEatAnimalAction
。而不是让Dog
类去实现具有吃,飞翔,游泳全部行为的IAnimalAction
大接口,这就体现了接口隔离原则。
//具有吃,飞翔,游泳全部行为的大接口
public interface IAnimalAction {
void eat();
void fly();
void swim();
}
//吃
public interface IEatAnimalAction {
void eat();
}
//飞翔
public interface IFlyAnimalAction {
void fly();
}
//游泳
public interface ISwimAnimalAction {
void swim();
}
public class Dog implements ISwimAnimalAction,IEatAnimalAction {
@Override
public void eat() {
}
@Override
public void swim() {
}
}