门面模式,外观模式Facade Pattern
将多个子功能使用统一的入口Facade分别调用使用,每个子系统的功能是都是独立的,互不影响。每个需要使用的子功能的类的对象作为Facade类的成员变量。
C#测试代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FacadePatternDemo
{
class Program
{
static void Main(string[] args)
{
Facade facade = new Facade();
facade.UnifiedEntrance();
Console.ReadLine();
}
}
/// <summary>
/// 统一入口外观类Facade,将需要使用的逻辑类作为该外观类的成员变量
/// </summary>
class Facade
{
/// <summary>
/// 成员变量一:将需要使用的逻辑类作为该外观类的成员变量
/// </summary>
FunctionClass1 functionClass1 = new FunctionClass1();
/// <summary>
/// 成员变量二:将需要使用的逻辑类作为该外观类的成员变量
/// </summary>
FunctionClass2 functionClass2 = new FunctionClass2();
/// <summary>
/// 统一入口方法
/// </summary>
public void UnifiedEntrance()
{
Console.WriteLine("------外观类的统一入口方法,依次分别调用具体的逻辑功能方法------");
functionClass1.FunctionMethod1();
functionClass2.FunctionMethod2();
Console.WriteLine("------这里可以处理其他逻辑或者直接结束------");
}
}
/// <summary>
/// 功能1的具体类
/// </summary>
class FunctionClass1
{
public void FunctionMethod1()
{
Console.WriteLine("这是功能类1的逻辑功能方法1的实现");
}
}
/// <summary>
/// 功能2的具体类
/// </summary>
class FunctionClass2
{
public void FunctionMethod2()
{
Console.WriteLine("这是功能类2的逻辑功能方法2的实现");
}
}
}
程序运行如图: