七大设计原则之接口隔离原则
介绍
类之间的依赖关系应该建立在最小的接口上
案例
public class InterfaceSegregationPrincipleDemo1 {
public static void main(String[] args) {
Interface1 dependB1 = new B();
Interface2 depend2 = new B();
Interface2 depend3 = new B();
Interface1 dependD1 = new D();
Interface3 depend4 = new D();
Interface3 depend5 = new D();
A a = new A();
a.depend1(dependB1);
a.depend2(depend2);
a.depend3(depend3);
C c = new C();
c.depend1(dependD1);
c.depend4(depend4);
c.depend5(depend5);
}
}
interface Interface1{
void operation1();
}
interface Interface2{
void operation2();
void operation3();
}
interface Interface3{
void operation4();
void operation5();
}
class B implements Interface1, Interface2{
@Override
public void operation1() {
System.out.println("B的operation1方法...");
}
@Override
public void operation2() {
System.out.println("B的operation2方法...");
}
@Override
public void operation3() {
System.out.println("B的operation3方法...");
}
}
class D implements Interface1, Interface3{
@Override
public void operation1() {
System.out.println("D的operation1方法...");
}
@Override
public void operation4() {
System.out.println("D的operation4方法...");
}
@Override
public void operation5() {
System.out.println("D的operation5方法...");
}
}
class A {
public void depend1(Interface1 interface1){
interface1.operation1();
}
public void depend2(Interface2 interface2){
interface2.operation2();
}
public void depend3(Interface2 interface2){
interface2.operation3();
}
}
class C {
public void depend1(Interface1 interface1){
interface1.operation1();
}
public void depend4(Interface3 interface3){
interface3.operation4();
}
public void depend5(Interface3 interface3){
interface3.operation5();
}
}