原来代码
class User1 {
private A a=new A();
private B b=new B();
private C c=new C();
public void op1(){b.fun();}
public void op2(){c.fun();}
public void op3(){a.fun();}
}
class User2 {
private A a=new A();
private B b=new B();
private C c=new C();
public void op1(){a.fun();}
public void op2(){c.fun();}
public void op3(){b.fun();}
}
class User3 {
private A a=new A();
private B b=new B();
private C c=new C();
public void op1(){a.fun();}
public void op2(){b.fun();}
public void op3(){c.fun();}
}
class A {
public void fun(){}
}
class B {
public void fun(){}
}
class C {
public void fun(){}
}
修改后
class User1 {
private Facade facade=new Facade();
public void op1(){facade.op1();}
public void op2(){facade.op2();}
public void op3(){facade.op3();}
}
class User2 {
private Facade facade=new Facade();
public void op1(){facade.op1();}
public void op2(){facade.op2();}
public void op3(){facade.op3();}
}
class User3 {
private Facade facade=new Facade();
public void op1(){facade.op1();}
public void op2(){facade.op2();}
public void op3(){facade.op3();}
}
class Facade {
private A a=new A();
private B b=new B();
private C c=new C();
public void op1(){a.fun();}
public void op2(){b.fun();}
public void op3(){c.fun();}
}
class A {
public void fun(){}
}
class B {
public void fun(){}
}
class C {
public void fun(){}
}