我们通过一个简单的开关电脑模拟程序来说明Facade模式(外观模式)
CPU类
public class Cpu
{
public void start()
{
system.out.print("CPU启动");
}
public void stop()
{
system.out.print("CPU关闭");
}
}
电脑风扇类
public class Fan
{
public void start()
{
system.out.print("风扇启动");
}
public void stop()
{
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