FacadePattern(门面模式)

/**
 * 外观模式(门面模式)
 * @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();//通过门面将子系统和访问者隔离,降低耦合
	}
}

  

posted @ 2016-12-28 10:17  麦子TMAC  阅读(158)  评论(0编辑  收藏  举报