zoukankan      html  css  js  c++  java
  • 设计模式你怎么看?--外观模式

     一 前言

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

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

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

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

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

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

    二  外观模式介绍

      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方法!");
            }
        }

     执行结果如下:

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

    四  总结

      

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

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

     

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

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

  • 相关阅读:
    绘制饼状图
    柱状图使用实例
    柱状图颜色区分
    bar函数与barh函数
    绘制柱状图
    绘制不同样式不同颜色的线
    Windows10没有修改hosts文件权限
    Lucene入门学习
    Kafka学习笔记
    Elasticsearch学习笔记(强推)
  • 原文地址:https://www.cnblogs.com/zery/p/3674799.html
Copyright © 2011-2022 走看看