什么是 Facade 模式?如何在 C# 中实现?

csharpserver side programmingprogramming更新于 2025/10/17 12:22:17

Facade 模式是一种覆盖在更复杂结构之上的简单结构。

参与者

子系统是指任何实现功能的类或对象,它们可以被 Facade 模式"包装"或"覆盖",从而简化接口。

Facade 模式是子系统之上的抽象层,它知道将适当的工作委托给哪个子系统。

Facade 模式非常通用,几乎适用于所有主流应用程序,尤其是那些由于各种原因无法重构或修改应用程序各个部分的应用程序。

示例

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");
   }
}

相关文章