通过上图可以看出,外观模式实现提供简单的接口(OpenMovie 和 CloseMovie)给客户端,也给客户端和子系统之间实现了解耦。下面通过代码来实现上面的这个 Demo。
几个播放工具的代码:
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("关闭灯光");
}
}
}












