C#设计模式之外观模式介绍

 更新时间:2012年10月29日 22:42:50   作者:  
外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层的接口,这个借口使得这子系统容易使用
1、在设计初期阶段,应该要有意识的将不同的两层分离,比如考虑数据访问层、业务逻辑层、表示层之间建立外观模式,这样可以为子系统提供简单一致的接口,使得耦合大大降低。

2、开发阶段,子系统内部由于不够重构变得非常复杂,增加外观模式可以屏蔽这个复杂性,并提供简单的接口。

3、维护一个遗留的大型系统,代码不好再维护时,使用外观模式也是不错的选择。

看看外观模式的结构图:



Facade类定义:可以给高层系统提供简单的接口
复制代码 代码如下:

class Facade
{
SubSystemOne one;
SubSystemTwo two;
SubSystemThree three;
SubSystemFour four;
public Facade()
{
one = new SubSystemOne();
two = new SubSystemTwo();
three = new SubSystemThree();
four = new SubSystemFour();
}
public void MethodA()
{
Console.WriteLine("MethodA组合方法");
one.MethodOne();
two.MethodOne();
}
public void MethodB()
{
Console.WriteLine("MethodB组合方法");
three.MethodOne();
four.MethodOne();
}
}

SubSystemOne 类: 底层系统会被Facade类整合简单的接口
复制代码 代码如下:

class SubSystemOne
{
public void MethodOne()
{
Console.WriteLine("子系统方法一");
}
}

主函数调用:
复制代码 代码如下:

class Program
{
static void Main(string[] args)
{
Facade facade = new Facade();
facade.MethodA();
facade.MethodB();
Console.ReadKey();
}
}

相关文章

  • C#使用CefSharp控件实现爬虫

    C#使用CefSharp控件实现爬虫

    这篇文章介绍了C#使用CefSharp控件实现爬虫的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • Unity Shader实现新手引导遮罩镂空效果

    Unity Shader实现新手引导遮罩镂空效果

    这篇文章主要为大家详细介绍了Unity Shader实现新手引导遮罩镂空效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • c#并行编程示例分享

    c#并行编程示例分享

    这篇文章主要介绍了c#并行编程示例,大家直接看下面的代码吧
    2014-01-01
  • Unity游戏开发实现背包系统的示例详解

    Unity游戏开发实现背包系统的示例详解

    这篇文章主要为大家介绍了Unity游戏开发实现背包系统的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • C#实现带百分比的进度条功能示例

    C#实现带百分比的进度条功能示例

    这篇文章主要介绍了C#实现带百分比的进度条功能,分析了带百分比进度条的功能需求并结合实例形式给出了具体实现步骤与相关操作方法,需要的朋友可以参考下
    2017-05-05
  • C#实现读取和设置文件与文件夹的权限

    C#实现读取和设置文件与文件夹的权限

    这篇文章主要为大家详细介绍了如何使用C#实现读取和设置文件与文件夹的权限,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-03-03
  • C# SendMail发送邮件功能实现

    C# SendMail发送邮件功能实现

    这篇文章主要为大家详细介绍了C# SendMail发送邮件功能实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • C#引用类型转换的常见方式总结

    C#引用类型转换的常见方式总结

    这篇文章主要介绍了C#引用类型转换的常见方式,包括子类转换成父类,父类转换成子类,以及不是子父级关系类之间的转换,需要的朋友可以参考下
    2014-09-09
  • C#如何连接数据库

    C#如何连接数据库

    这篇文章主要介绍了C#如何连接数据库问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08

最新评论