/**
* 外观模式(门面模式)
* @author TMAC-J
* 外观模式是通过访问一个前台来实现对子系统的访问,其和代理模式的区别是
* 代理模式是通过代理一个类的形式,也就是说一对一的关系
* 而外观模式是通过访问一个前台来对子系统(多个类)的访问,一对多
* 以下的例子中A、B、C都是子系统中的类
*/
public class FacadePattern {
public class A{
public void doSomething(){
System.out.println("A->doSomething");
}
}
public class B{
public void doSomething(){
System.out.println("B->doSomething");
}
}
public class C{
public void doSomething(){
System.out.println("C->doSomething");
}
}
/**
* 这里通过反射的方式,读者可以用new的方式
* @author voole
*
*/
public class Facade{
public void doSomething() throws InstantiationException, IllegalAccessException{
A.class.newInstance().doSomething();
B.class.newInstance().doSomething();
C.class.newInstance().doSomething();
}
}
public void test() throws InstantiationException, IllegalAccessException{
Facade.class.newInstance().doSomething();//通过门面将子系统和访问者隔离,降低耦合
}
}