定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。
// 接口Ifunc 有一些方法
interface Ifunc {
void func1();
void func2();
void func3();
void func4();
void func5();
}
// 对于a来说 只需实现方法 1,2, 3
class A implements Ifunc {
@Override
public void func1() {
// TODO Auto-generated method stub
System.out.println("实现func1");
}
@Override
public void func2() {
// TODO Auto-generated method stub
System.out.println("实现func2");
}
@Override
public void func3() {
// TODO Auto-generated method stub
System.out.println("实现func3");
}
@Override
public void func4() {
// TODO Auto-generated method stub
}
@Override
public void func5() {
// TODO Auto-generated method stub
}
}
// 对于b来说 只需实现方法 3, 4,5
class B implements Ifunc {
@Override
public void func1() {
// TODO Auto-generated method stub
}
@Override
public void func2() {
// TODO Auto-generated method stub
}
@Override
public void func3() {
// TODO Auto-generated method stub
System.out.println("实现func3");
}
@Override
public void func4() {
// TODO Auto-generated method stub
System.out.println("实现func4");
}
@Override
public void func5() {
// TODO Auto-generated method stub
System.out.println("实现func5");
}
}
// 如果不拆分接口,A,B 都要实现不需要的方法,太冗余,所以拆分Ifunc接口
interface IfuncA {
void func1();
void func2();
}
interface IfuncB {
void func4();
void func5();
}
interface IfunC {
void func3();
}
// 对于a来说 只需实现方法 1,2, 3
class A implements IfuncA, IfunC {
@Override
public void func1() {
// TODO Auto-generated method stub
System.out.println("实现func1");
}
@Override
public void func2() {
// TODO Auto-generated method stub
System.out.println("实现func2");
}
@Override
public void func3() {
// TODO Auto-generated method stub
System.out.println("实现func3");
}
}
// 对于b来说 只需实现方法 3, 4,5
class B implements IfuncB, IfunC {
@Override
public void func3() {
// TODO Auto-generated method stub
System.out.println("实现func3");
}
@Override
public void func4() {
// TODO Auto-generated method stub
System.out.println("实现func4");
}
@Override
public void func5() {
// TODO Auto-generated method stub
System.out.println("实现func5");
}
}
这样对于A、B而言,通过接口分离,避免实现了不必要的方法
网友评论