就是多加了Facade 这一层,让自己同serviceA ServiceB ServiceC
不会直接被调用。
interface ServiceA{
public void methodA();
}
interface ServiceB{
public void methodB();
}
interface ServiceC{
public void methodC();
}
class Facade{
ServiceA sa;
ServiceB sb;
ServiceC sc;
public Facade(){
sa= new ServiceAImpl();
sb= new ServiceBImpl();
sc= new ServiceCImpl();
}
public void methodA(){
sa.methodA();
sb.methodB();
}
public void methodB(){
sb.methodB();
sc.methodC();
}
public void methodC(){
sc.methodC();
sa.methodA();
}
}
class ServiceAImpl implements ServiceA{
public void methodA(){
System.out.println("A");
}
}
class ServiceBImpl implements ServiceB{
public void methodB(){
System.out.println("B");
}
}
class ServiceCImpl implements ServiceC{
public void methodC(){
System.out.println("C");
}
}
public class FacadeTest {
public static void main(String[] args){
ServiceA sa = new ServiceAImpl();
ServiceB sb = new ServiceBImpl();
sa.methodA();
sb.methodB();
System.out.println("============");
Facade facade = new Facade();
facade.methodA();
facade.methodB();
}
}
网友评论