using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DesignPattern
{
//外观模式 (又称门面模式)
//为子系统中的一组接口提供一个统一的入口,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易的使用
//进阶
//当增加、修改、删除子系统时,均需要修改外观类和客户端 违反了设计的开闭原则 所以增加外观类的抽象,客户端编程针对抽象外观类编程,
//当需要修改增加子系统时,可以新增一个具体外观类,通过配置文件进行具体外观类的反射创建,避免了对客户端和原来外观类的修改,满足开闭原则。
class Test
{
private void main()
{
//客户端使用案例
Facade facade = new Facade();
facade.method();
//输出结果
//
//执行了子系统A的方法A
//执行了子系统B的方法B
//执行了子系统C的方法C
Dictionary<string, string> data = new Dictionary<string, string>();
Hashtable hashtable = new Hashtable();
}
}
//子系统A
class SubsystemA
{
public void methodA()
{
Console.WriteLine("执行了子系统A的方法A");
}
}
//子系统B
class SubsystemB
{
public void methodB()
{
Console.WriteLine("执行了子系统B的方法B");
}
}
//子系统C
class SubsystemC
{
public void methodC()
{
Console.WriteLine("执行了子系统C的方法C");
}
}
//外观类 门面类
class Facade
{
private SubsystemA obj1 = new SubsystemA();
private SubsystemB obj2 = new SubsystemB();
private SubsystemC obj3 = new SubsystemC();
public void method()
{
obj1.methodA();
obj2.methodB();
obj3.methodC();
}
}
}
《C#设计模式》==>外观模式(又称门面模式)
最新推荐文章于 2023-08-01 16:50:07 发布