目录
1.简介
接口隔离原则(Interface Segregation Principle),简称ISP。
2.定义
类间的依赖关系应该建立在最小的接口上。意思是说在保证SRP的基础上,尽可能的细化接口,做到高类聚。何为高类聚,高类聚是指提高接口的处理能力,减少对外的交互,提供较少的公共方法。一旦违背了ISP就会出现封装过度的情况,而这是不被允许的。
3.举例
才子统常分为文才和武才,文才比如说江南四大才子,武才比如说武状元苏乞儿
public interface ILiteraryTalent {
public void poetize();
}
public interface IMartialArtsTalent {
public void kungfu();
}
当然也有文武全才,小霸王孙策算吧
public talent implements ILiteraryTalent, IMartialArtsTalent {
private String name;
public talent(String _name) {
this.name = _name;
}
public void poetize() {
System.out.println(this.name + "会作石灰吟");
}
public void kungfu() {
System.out.println(this.name + "会截拳道");
}
}
如果是直接写成一个,我们可以看到接口会过于庞大,而且容纳了一些可变的因素,这样也就造成了封装过度的问题
public interface Italent {
public void poetize();
public void kungfu();
}
通过将一个Italent接口拆分成多个接口所依赖的原则就是ISP,这样可以更好的适应未来的变更,同时提高系统的灵活性和可维护性。