设计模式你怎么看?--外观模式

 一 前言

   来看看相比其它模式来说比较好理解的一个模式 “外观模式” ,另附上其它相关模式的链接 

设计模式你怎么看?--简单工厂模式

设计模式你怎么看?--抽象工厂模式

设计模式你怎么看?--工厂方法模式

设计模式你怎么看?--策略模式

设计模式你怎么看?--代理模式

 

 

二  外观模式介绍

  2.1 什么是外观模式

    是软件工程中常用的一种软件设计模式,它为子系统中的一组接口提供一个统一的高层接口,使得子系统更容易使用

      2.2 外观模式成员

  Clients:客户对象通过一个外观接口读写子系统中各接口的数据资源。

  Facade:这个外观类为子系统中Packages 1、2、3提供一个共同的对外接口

  Packages(图中的System1,2,3):客户可以通过外观接口读取的内部库。

     2.3 外观模式UML图

 

三 外观模式代码

 

Client类 
复制代码
    /// <summary>
    /// Client类 向外观类(Facade)发起请求
    /// </summary>
    class Program
    {
        static void Main(string[] args)
        {
            Facade facade = new Facade();
            facade.CallBuy();

            Console.Read();
        }
    }

复制代码

 

 

 外观类 
复制代码
    /// <summary>
    /// 外观类 将Client端的请求分发给指定的子系统
    /// </summary>
    class Facade
    {
        private System sy1;
        private System2 sy2;
        private System3 sy3;
        public Facade()
        {
            sy1 = new System();
            sy2 = new System2();
            sy3 = new System3();
        }
        public void CallBuy()
        {
            sy1.Buy();
            sy2.Buy();
            sy3.Buy();
        }
    }
复制代码

 Packages(子系统类)

复制代码
    /// <summary>
    /// 子系统类 处理来自外观的请求
    /// </summary>
    class System
    {
        public void Buy()
        {
            Console.WriteLine("子系统1执行Buy方法!");
        }
    }
    class System2
    {
        public void Buy()
        {
            Console.WriteLine("子系统2执行Buy方法!");
        }
    }
    class System3
    {
        public void Buy()
        {
            Console.WriteLine("子系统3执行Buy方法!");
        }
    }
复制代码

 执行结果如下:

 通过上面代码 大至可以知道 外观模式 对于多个子系统调用的统一规范调用很有帮助,将子系统的一些方法集中管理后使得子系统更容易使用

 

四  总结

  

 路得一步一步走,代码得一行一行敲。 设计模式篇持续学习与更新中。。。。。

 

本人水平有限,如有不对之处还请指出 谢谢~

 

如果您觉得本文有给您带来一点收获,不妨点个推荐,为我的付出支持一下,谢谢~

如果希望在技术的道路上能有更多的朋友,那就关注下我吧,让我们一起在技术的路上奔跑

 

 

posted @   Zery  阅读(1083)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示