本专栏内容参考自:咕泡学院Tom老师的《Spring5核心原理与30个类手写实战》,仅作个人学习记录使用,如有侵权,联系速删
接口隔离原则(Interface isolation principle,ISP)是指用多个专门的接口,而不是用单一的总接口,客户端不应该依赖它不需要的接口。
这个原则知道我们在设计接口时应当注意以下几点:
- 一个类对另一个类的依赖应当建立在最小的接口上。
- 建立单一的接口,不要建立庞大臃肿的接口。
- 尽量细化解耦,接口中的方法尽量少(不是越少越好)
接口隔离原则符合我们常说的高内聚、低耦合的设计思想,可以使类具有很好的可读性、可扩展性和可维护性。我们在设计接口的时候,要多花时间去思考,要考虑业务模型,包括对哟吼可能发生变更的地方还要做一些预判。 所以,对于抽象、对于业务模型的理解是非常中重要的。
比如现在有个动物接口:
代码语言:javascript复制public interface IAnimal {
void eat();
void fly();
void swim();
}
提供了吃、飞、游泳三个方法。 现在有一个Dog实现了它,显然狗是不能飞的,那么里面的fly方法是不是就空着了。 那么这就不符合接口隔离原则了,怎么改进呢? 把三种行为拆分为三个接口,让每个动物实现他们各自需要的就行了。