什麼是 Facade 模式以及如何在 C# 中實現?


外觀模式是在更復雜的結構之上建立的一個簡單結構。

參與者

子系統是任何實現功能的類或物件,但可以透過外觀模式來“包裝”或“覆蓋”它們,以簡化介面。

外觀模式是對子系統進行抽象的一層,它知道將適當的工作委託給哪個子系統。

外觀模式非常通用,幾乎適用於每個主要應用程式,尤其適用於由於各種原因而無法重構或修改應用程式的某些部分的情況。

示例

public class HomeFacade {
   LightsFacade light;
   MusicSystemFacade musicSystem;
   AcFacade ac;
   public HomeFacade() {
      light = new LightsFacade();
      musicSystem = new MusicSystemFacade();
      ac = new AcFacade();
   }
   public void LeaveHomeForOffice() {
      light.SwitchOffLights();
      musicSystem.SwitchOffMusicSystem();
      ac.SwitchOffAc();
   }
   public void ArriveHomeFromOffice() {
      light.SwitchOnLights();
      musicSystem.SwitchOnMusicSystem();
      ac.SwitchOnAc();
   }
}
public class LightsFacade {
   public void SwitchOnLights() {
      Console.WriteLine("Switched on Lights");
   }
   public void SwitchOffLights() {
      Console.WriteLine("Switched off Lights");
   }
}
public class MusicSystemFacade {
   public void SwitchOnMusicSystem() {
      Console.WriteLine("Switched on MusicSystem");
   }
   public void SwitchOffMusicSystem() {
      Console.WriteLine("Switched off MusicSystem");
   }
}
public class AcFacade {
   public void SwitchOnAc() {
      Console.WriteLine("Switched on Ac");
   }
   public void SwitchOffAc() {
      Console.WriteLine("Switched off Ac");
   }
}

更新日期: 2020-11-25

122 人看過

開啟你的 職業

完成課程即可獲得認證

開始
廣告
© . All rights reserved.