初学者可能会觉得外观模式和前面的代理模式有相似之处,但是这是两个不同的模式,因为外观模式是用来屏蔽内部实现的具体操作,而代理模式是代理类和具体的实现类继承于同一个接口,而且代理类仅仅起到代理的作用。代码如下: package tom.java.com; public class FacadeTry { public static void main(String[] args) { // TODO Auto-generated method stub Farade f = new Farade(); f.method1(); f.method2(); f.method3(); } } /* * 外观模式的作用是减少外部调用程序和内部相应之间的耦合;远程代理是隐藏被代理对象实现细节,虚拟代理是更加灵活的操作被代理对象。 实现方式上,外观模式是产生一个新类,封装内部操作;代理是产生一个继承类,操作对用户看起来是一样的。 */ class Sub1 { public void print(){ System.out.println("Sub1111"); } } class Sub2 { public void print(){ System.out.println("Sub2222"); } } class Sub3 { public void print(){ System.out.println("Sub3333"); } } class Sub4 { public void print(){ System.out.println("Sub4444"); } } class Farade { private Sub1 s1 ; private Sub2 s2 ; private Sub3 s3 ; private Sub4 s4 ; public Farade(){ s1 = new Sub1(); s2 = new Sub2(); s3 = new Sub3(); s4 = new Sub4(); } public void method1 (){ s1.print(); s2.print(); } public void method2 (){ s3.print(); s4.print(); } public void method3 (){ s1.print(); s2.print(); s3.print(); s4.print(); } } <br />