天天看點

設計模式之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

繼續閱讀