博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式你怎么看?--外观模式
阅读量:5009 次
发布时间:2019-06-12

本文共 1593 字,大约阅读时间需要 5 分钟。

 一 前言

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

 

 

二  外观模式介绍

  2.1 什么是外观模式

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

      2.2 外观模式成员

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

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

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

     2.3 外观模式UML图

 

三 外观模式代码

 

Client类
///     /// Client类 向外观类(Facade)发起请求    ///     class Program    {        static void Main(string[] args)        {            Facade facade = new Facade();            facade.CallBuy();            Console.Read();        }    }

 

 

外观类
///     /// 外观类 将Client端的请求分发给指定的子系统    ///     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(子系统类)

///     /// 子系统类 处理来自外观的请求    ///     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方法!");        }    }

 执行结果如下:

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

 

四  总结

  

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

 

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

 

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

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

 

 

转载于:https://www.cnblogs.com/zery/p/3674799.html

你可能感兴趣的文章
XPath定位时,使用文本的方法小技巧。
查看>>
数学计算公式
查看>>
Hibernate学习(二补充)关系映射----基于外键的双向一对一
查看>>
开发记录04
查看>>
安装pandas报错(AttributeError: 'module' object has no attribute 'main')
查看>>
ch02 fundamental definition 01
查看>>
JSON解析
查看>>
Position is everything?(css定位学习的一些心得)(一)
查看>>
如何提高编程水平
查看>>
Jquery Uploadify3.21.与2.1版本 使用中存在的问题--记录三
查看>>
Linux查看进程的内存占用情况 分类: ubuntu ...
查看>>
[BZOJ 2818]Gcd
查看>>
FORM值传递与地址传递
查看>>
(译)yaml快速教程
查看>>
C:大数相加
查看>>
静态博客教程 1:hexo + github
查看>>
160. Intersection of Two Linked Lists
查看>>
人生苦短,我用python-- Day11
查看>>
JAVA Bean
查看>>
ehcache memcache redis 三大缓存男高音_转
查看>>