1.特点:子系统的高层接口,避免两个类直接关系的第三者。
2.概念:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
3.类图:
4.程序实现:
/// <summary>
/// 子系统中的一个类
/// </summary>
public class SubSystemOne
{
public void MethodeOne()
{
Console.WriteLine("Sub System first method.");
}
}
/// <summary>
/// 子系统中一个类
/// </summary>
public class SubSystemTwo
{
public void MethodTwo()
{
Console.WriteLine("Sub System second method.");
}
}
/// <summary>
/// 子系统中一个类
/// </summary>
public class SubSystemThree
{
public void MethodThree()
{
Console.WriteLine("Sub System third method.");
}
}
/// <summary>
/// 子系统中一个类
/// </summary>
public class SubSystemFour
{
public void MethodFour()
{
Console.WriteLine("Sub System fourth method.");
}
}
/// <summary>
/// 外观类
/// </summary>
public class Facade
{
private SubSystemOne one;
private SubSystemTwo two;
private SubSystemThree three;
private SubSystemFour four;
public Facade()
{
one = new SubSystemOne();
two = new SubSystemTwo();
three = new SubSystemThree();
four = new SubSystemFour();
}
public void MethodA()
{
Console.WriteLine("\nMethod group A----");
one.MethodeOne();
two.MethodTwo();
four.MethodFour();
}
public void MethodB()
{
Console.WriteLine("\nMethod group B----");
two.MethodTwo();
three.MethodThree();
}
}
class Program
{
static void Main(string[] args)
{
// 由于Facade的作用,客户端可以根本不知道子系统类的存在
Facade facade = new Facade();
facade.MethodA();
facade.MethodB();
Console.Read();
}
}