什么是 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 人看过

开启你的 职业

完成课程即可获得认证

开始
广告