閱讀497 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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

  上一篇:go 是什麼幹掉了 Linux 桌麵?
  下一篇:go 1的個數