七大原则之 接口隔离原则
- 接口隔离原则:
a. 不要在一个接口里面放很多的方法,这样会显得这个类很臃肿不堪
b. 接口应该尽量细化,一个接口对应一个功能模块,同时接口里面的方法应该尽可能的少,使接口更加轻便灵活。
反例:
//编写一个动物的接口
public interface Animal {
public void ear(); //吃
public void swim(); //游泳
public void fly(); //飞
}
//编写一个狗类,实现这个动物接口
//狗是不可能会飞的,所有抛出异常
public class Dog implements Animal {
@Override
public void ear() {
System.out.println("狗啃骨头");
}
@Override
public void swim() {
System.out.println("狗刨");
}
@Override
public void fly() {
throw new RuntimeException("你行你来..你来飞");
}
}
//编写一个鸟类
//鸟不会游泳抛出异常
public class Bird implements Animal {
@Override
public void ear() {
System.out.println("鸟吃虫子");
}
@Override
public void swim() {
throw new RuntimeException("You can you up!!");
}
@Override
public void fly() {
System.out.println("我飞!!");
}
}
正例:
把动物接口,进行拆分
//吃类
public interface Eatable {
public void eat();
}
//游泳类
public interface Flyable {
public void fiy();
}
//飞类
public interface Swimable {
void swim();
}
//狗类实现吃和游泳的接口
public class Dog implements Eatable, Swimable {
@Override
public void eat() {
//...
}
@Override
public void swim() {
//...
}
}
//鸟类实现吃和飞的接口
public class Bird implements Flyable, Eatable {
@Override
public void eat() {
//....
}
@Override
public void fiy() {
//...
}
}