解析C#设计模式编程中外观模式Facade Pattern的应用

2019-12-26 18:08:19于丽

解析C#设计模式编程中外观模式Facade Pattern的应用

  通过上图可以看出,外观模式实现提供简单的接口(OpenMovie 和 CloseMovie)给客户端,也给客户端和子系统之间实现了解耦。下面通过代码来实现上面的这个 Demo。

解析C#设计模式编程中外观模式Facade Pattern的应用

几个播放工具的代码:


using System;
namespace Facade 
{ 
  /// <summary> 
  /// 投影仪 
  /// </summary> 
  public class Projector 
  { 
    public void OpenProjector() 
    { 
      Console.WriteLine("打开投影仪"); 
    }
    public void CloseProjector() 
    { 
      Console.WriteLine("关闭投影仪"); 
    }
    public void SetWideScreen() 
    { 
      Console.WriteLine("投影仪状态为宽屏模式"); 
    }
    public void SetStandardScreen() 
    { 
      Console.WriteLine("投影仪状态为标准模式"); 
    } 
  } 
}
     
     
using System;
namespace Facade 
{ 
  /// <summary> 
  /// 功放机 
  /// </summary> 
  public class Amplifier 
  { 
    public void OpenAmplifier() 
    { 
      Console.WriteLine("打开功放机"); 
    }
    public void CloseAmplifier() 
    { 
      Console.WriteLine("关闭功放机"); 
    } 
  } 
}
       
        
using System;
namespace Facade 
{ 
  /// <summary> 
  /// 屏幕 
  /// </summary> 
  public class Screen 
  { 
    public void OpenScreen() 
    { 
      Console.WriteLine("打开屏幕"); 
    }
    public void CloseScreen() 
    { 
      Console.WriteLine("关闭屏幕"); 
    } 
  } 
}
        
        
using System;
namespace Facade 
{ 
  /// <summary> 
  /// DVD播放器 
  /// </summary> 
  public class DVDPlayer 
  { 
    public void OpenDVDPlayer() 
    { 
      Console.WriteLine("打开 DVD 播放器"); 
    }
    public void CloseDVDPlayer() 
    { 
      Console.WriteLine("关闭 DVD 播放器"); 
    } 
  } 
}
        
       
using System;
namespace Facade 
{ 
  /// <summary> 
  /// 灯光 
  /// </summary> 
  public class Light 
  { 
    public void OpenLight() 
    { 
      Console.WriteLine("打开灯光"); 
    }
    public void CloseLight() 
    { 
      Console.WriteLine("关闭灯光"); 
    } 
  } 
}