定义:使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口
举例说明:接口A需要实现方法a、b、c,具体实现类B实现方法a、b,实现类C实现a、c。所以B,C需要实现它们不需要的方法。
public interface A {
public void function1();
public void function2();
public void function3();
}
public class B implements A{
public void function1(){
system.out.print("需要实现的方法1");
}
public void function2() {
system.out.print("需要实现的方法2");
}
public void function3() {
system.out.print("不需要实现的方法3;但也必须实现");
}
}
public class C implements A{
public void function1(){
system.out.print("需要实现的方法1");
}
public void function2() {
system.out.print("不需要实现的方法2;但也必须实现");
}
public void function3() {
system.out.print("需要实现的方法3");
}
}
以上代码实现造成了方法的多余;B类中不需要实现 方法3;但也必须实现 ;C类中不用实现方法2;但也必须实现。所以改造一下呢?
public interface A1 {
public void function1();
public void function2();
}
public interface A2 {
public void function1();
public void function3();
}
public class B implements A1{
public void function1(){
system.out.print("需要实现的方法1");
}
public void function2() {
system.out.print("需要实现的方法2");
}
}
public class C implements A2{
public void function1(){
system.out.print("需要实现的方法1");
}
public void function3() {
system.out.print("需要实现的方法3");
}
}
将接口分为两类;A1和A2;分别包含方法f1,f2 和f1,f3;B和C分别实现A1和A2接口。不用实现多余的方法。
最后总结一下:接口分离原则 就是子类 不用实现 多余的接口方法
优点:子类不用实现过多的接口;
缺点:接口分得过细过多,导致系统复杂。