設計模式之Facade(外觀)模式
我們通過一個簡單的開關電腦模擬程序來說明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所麵對的往往是多個類或其它程序單元,通過重新組合各類及程序單元,對外提供統一的接口/界麵。
參考地址:https://baike.baidu.com/view/2960561.htm
最後更新:2017-04-02 15:14:53