天天看点

设计模式: 七大原则之 接口隔离原则

七大原则之 接口隔离原则

  • 接口隔离原则:
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() {
        //...
    }
}
           

继续阅读