美文网首页
设计原则(4) : 接口隔离原则

设计原则(4) : 接口隔离原则

作者: a_salt_fish | 来源:发表于2019-01-13 17:03 被阅读0次

客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。

话不多说上代码
定义一个动物的接口 IAnimal

public interface IAnimal {
    void fly();
    void swim();
}

定义一个Dog 实现这个接口

public class Dog implements IAnimal {
    @Override
    public void fly() {
    }
    @Override
    public void swim() {
    }
}

很明显, 狗是不会飞的,所以我们应当把这个接口拆分开来

public interface IFlyAnimal {
    void fly();
}
public interface ISwimAnimal {
    void swim();
}

重新定义Dog

public class Dog2 implements ISwimAnimal {
    @Override
    public void swim() {

    }
}

天鹅会飞也会游泳

public class Swan implements IFlyAnimal, ISwimAnimal{
    @Override
    public void fly() {

    }
    @Override
    public void swim() {

    }
}

这样就做到了接口的隔离, 用聚合隔离接口的方式取代一个接口中定义大量的方法

  • 接口隔离原则与单一职责原理的区别
    • 单一职责原理是指类或接口的职责是单一的, 强调的是职责,比如一个接口里面可以有一个也可以有很多个方法,只要它的职责是统一的就OK.
    • 接口隔离原则只是针对接口的,注重对接口依赖的隔离,主要针对抽象,针对程序整体框架的构建.
采用接口隔离原则对接口进行约束时,要注意以下几点:
  • 接口尽量小,但是要有限度。对接口进行细化可以提高程序设计灵活性是不挣的事实,但是如果过小,则会造成接口数量过多,使设计复杂化。所以一定要适度。
  • 为依赖接口的类定制服务,只暴露给调用的类它需要的方法,它不需要的方法则隐藏起来。只有专注地为一个模块提供定制服务,才能建立最小的依赖关系。
  • 提高内聚,减少对外交互。使接口用最少的方法去完成最多的事情。

github源码

相关文章

网友评论

      本文标题:设计原则(4) : 接口隔离原则

      本文链接:https://www.haomeiwen.com/subject/rfkldqtx.html