外观模式(Facade):为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更容易使用。

1、在设计初级阶段,应该要有意识的将不同的两个层分离。

2、层与层之间建立外观Facade,为复杂的子系统提供一个简单的接口,使得耦合大大降低。

3、在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂。

4、增加 Facade可以提供一个简单的接口,减少他们之间的依赖。

Facade代码

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Text;
 4 
 5 namespace Facade
 6 {
 7     class Program
 8     {
 9         static void Main(string[] args)
10         {
11             Facade facade = new Facade();
12             facade.MethodA();          //由于Facade的作用,客户端可以根本不知道SubSystemOne,SubSystemTwo等。
13             Console.ReadLine();
14         }
15     }
16     class Facade
17     {
18         SubSystemOne one;
19         SubSystemTwo two;
20         SubSystemThree three;
21         public Facade()
22         {
23             one = new SubSystemOne();
24             two = new SubSystemTwo();
25             three = new SubSystemThree();
26         }
27         public void MethodA()
28         {
29             Console.WriteLine("方法组A()----");
30             one.MethodOne();
31             two.MethodTwo();
32             three.MethodThree();
33         }
34     }
35     class SubSystemOne
36     {
37         public void MethodOne()
38         {
39             Console.WriteLine("子系统方法一");
40         }
41     }
42     class SubSystemTwo
43     {
44         public void MethodTwo()
45         {
46             Console.WriteLine("子系统方法二");
47         }
48     }
49     class SubSystemThree
50     {
51         public void MethodThree()
52         {
53             Console.WriteLine("子系统方法三");
54         }
55     }
56 }

转载于:https://www.cnblogs.com/gooliugle/archive/2010/04/25/1720803.html

大话设计模式读书笔记10----外观模式(Facade)相关推荐

  1. 大话设计模式读书笔记之原型模式

    由于大话这本书是以C#语言为基础写就的,本设计模式的例子中使用了一些c#中的API,因此就不再引用此书中的例子了,参考了一篇博客园中的大神写就的浅显易懂的JAVA版原型模式,在此奉上链接,以供大家学习 ...

  2. 大话设计模式读书笔记--4.代理模式

    生活中的例子: 班主任让班长通知班委下午3点开会 班长就是班主任的代理 代理模式的目的是: 隐藏真实访问对象,同时可以处理别的事情 定义 代理模式:为其他对象提供一种代理以控制对这个对象的访问 也就是 ...

  3. 大话设计模式读书笔记--6.原型模式

    简单的复制粘贴极有可能造成重复代码的灾难, 但是java中提供了克隆的功能, 如果一个对象创建过程复杂,又要频繁使用, 在初始化信息不发生变化的情况下,应当采取克隆而不是new一个对象 定义 原型模式 ...

  4. 大话设计模式读书笔记之桥接模式

    1.定义: 将抽象部分与它的实现部分分离,使它们都可以独立地变化. 需要理解,什么叫抽象与它的实现分离,并不是说,让抽象类与其派生类分离,因为这没任何意义.实现指的是抽象类和它的派生类用来实现自己的对 ...

  5. 大话设计模式读书笔记之状态模式

    1.定义:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类.主要解决的问题是当控制一个对象状态转换的条件表达式过于复杂时把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复 ...

  6. 大话设计模式读书笔记

    主题 概要 设计模式 大话设计模式读书笔记 编辑 时间 新建 20170423 序号 参考资料 1 大话设计模式 重新看了一遍设计模式,除了一些已经特别熟悉的模式,都自己敲了一遍代码,有些豁然开朗的感 ...

  7. 设计模式读书笔记-----工厂方法模式

    一.问题 在前一章<设计模式读书笔记-----简单工厂模式>中通过披萨的实例介绍了简单工厂模式.在披萨实例中,如果我想根据地域的不同生产出不同口味的披萨,如纽约口味披萨,芝加哥口味披萨.如 ...

  8. HeadFirst设计模式_读书笔记_007_外观模式

    外观模式:提供了一个统一的接口,用来访问子系统中的一群接口或者一个很大的接口,总之外观模式的目的是简化并统一其他的接口.与适配器不同的是,它不会修改其他的接口,只是将客户从一个复杂的子系统中解耦出来. ...

  9. 设计模式学习系列9 外观模式Facade

    1.概述 自己卖了一辆越野自行车,但毕竟不是自己定制的,买回来之后可能需要更改一下脚蹬,座皮,里程计数器或者刹车系统,假如将自行车看做一个整体系统,对我们而言使用的是自行车,然后我们对自己车构件的修改 ...

最新文章

  1. 编译器设计-有限自动机
  2. 用牛顿迭代法求浮点数的平方根
  3. Android判断是否Root方法
  4. 亚马逊被起诉!因女员工一天上六次厕所遭开除
  5. (一)vue 数据更新 试图不更新 解决办法
  6. python学习: 如何循序渐进学习Python语言
  7. 【多元域乘法】多项式乘法电路原理及MATLAB详解
  8. 计算机的安全设置在哪儿,电脑防火墙在哪里设置
  9. (转)从零实现3D图像引擎:(5)3D坐标系函数库
  10. Matlab关联m文件与m文件关联设置
  11. Linux学习-汇总
  12. 征战FPGA之制作FLASH烧写用的bin文件
  13. matlab 求平面方程,MATLAB求空间平面方程
  14. win11家庭版,如何进入海康摄像头web后台
  15. rsa密钥 xshell_利用xshell密钥管理服务器远程登录
  16. 背单词App开发日记4
  17. 通过读取学生txt,进而实现随机选人(包含对应人物照片)并用GUI实现
  18. WPS如何转换成图片?三种方法帮你实现
  19. 多线程socket服务器(c语言)
  20. UserBehavior用户行为分析

热门文章

  1. python爬虫之bs4库_三分钟搞定bs4库的解析器
  2. 用java制作心理测试软件_Java 程序员必备的10款开源工具
  3. 命名时取代基优先顺序_有机化学专题讲解——有机化合物的命名
  4. python课程思维导图_零基础Python学习思维导图,记得收藏
  5. arm中的.a文件如何产生的_如何在IPFS中Pin一个文件?
  6. 数据挖掘原理与算法 kNN算法
  7. pytorch学习笔记(二十五):VGG
  8. 【TGRS】Ship Detection in Large-Scale SAR Images Via Spatial Shuffle-Group Enhance Attention译读笔记
  9. 目标检测——域适应的学习笔记
  10. 算法优化——位运算的优化技巧