天天看点

设计模式之Facade(外观)模式

我们通过一个简单的开关电脑模拟程序来说明facade模式(外观模式)

cpu类

public class cpu

{

 public void start()

 {

  system.out.print("cpu启动");

 }

 public void stop()

  system.out.print("cpu关闭");

}

电脑风扇类

public class fan

  system.out.print("风扇启动");

  system.out.print("风扇关闭");

电脑外观类

public class computerfacade

 cpu cpu = null;

 fan fan = null;

 public computerfacade()

  cpu = new cpu();

  fan = new fan();

 public void open()

  cpu.start();

  fan.start(); 

 public void close()

  cpu.stop();

  fan.stop(); 

可以想象,开电脑的时候我们不管cpu如何启动,风扇如何启动,只要按一下开关就行了。

来看一下外观模式的定义

将原来分散在源码中的类/结构及方法重新组合,形成新的、统一的接口,供上层应用使用。这在某种意义上与adapter及proxy有类似之处,但是,proxy(代理)注重在为client-subject提供一个访问的中间层,如corba可为应用程序提供透明访问支持,使应用程序无需去考虑平台及网络造成的差异及其它诸多技术细节;adapter(适配器)注重对接口的转换与调整;而facade所面对的往往是多个类或其它程序单元,通过重新组合各类及程序单元,对外提供统一的接口/界面。

参考地址:http://baike.baidu.com/view/2960561.htm

继续阅读