java接口隔离原则
不同的类实现接口,要把公用的方法和不公用的方法分离出来
public static void main(String[] args){
A a = new A();
a.fun1(new B());
a.fun2(new B());
a.fun3(new B());
C c = new C();
c.fun1(new D());
c.fun4(new D());
c.fun5(new D());
}
//三个接口
interface Interface1{
void fun1();
}
interface Interface2{
void fun2();
void fun3();
}
interface Interface3{
void fun4();
void fun5();
}
class B implements Interface1,Interface2{
public void fun1(){
System.out.println(“B实现了fun1”);
}
public void fun2(){
System.out.println(“B实现了fun2”);
}
public void fun3(){
System.out.println(“B实现了fun3”);
}
}
class D implements Interface1,Interface2{
public void fun1(){
System.out.println(“D实现了fun1”);
}
public void fun4(){
System.out.println(“D实现了fun4”);
}
public void fun5(){
System.out.println(“D实现了fun5”);
}
}
class A{
public void fun1(Interface1 i){
i.fun1();
}
public void fun1(Interface2 i){
i.fun2();
}
public void fun1(Interface2 i){
i.fun3();
}
}
class C{
public void fun1(Interface1 i){
i.fun1();
}
public void fun1(Interface3 i){
i.fun4();
}
public void fun1(Interface3 i){
i.fun5();
}
}