设计模式之十(外观模式)
前言
外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一系统更加容易使用.
结构图
SubSystem Class 子系统类集合 实现子系统的功能,处理Facade对象指派的任务,注意子类中没有Facade的任何信息,即没有对Facade对象的引用
代码实现
首先是四个子系统的类
public class SubSystemOne{public void MethodOne(){Console.WriteLine("子系统方法一");}}public class SubSystemTwo{public void MethodTwo(){Console.WriteLine("子系统方法二");}}public class SubSystemThree{public void MethodThree(){Console.WriteLine("子系统方法三");}}public class SubSystemFour{public void MethodFour(){Console.WriteLine("子系统方法四");}}
外观类
public 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("\n方法组A()----");one.MethodOne();two.MethodTwo();four.MethodFour();}public void MethodB(){Console.WriteLine("\n方法组B()----");two.MethodTwo();three.MethodThree();}}
客户端调用
class Program{static void Main(string[] args){Facade facade = new Facade();facade.MethodA();facade.MethodB();Console.ReadLine();}}
运行结果如下
总结
首先,在设计初期阶段,应该要有意识的将不同的两个层分离。
其次,在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂。增加外观Facade可以提供一个简单的接口,减少它们之间的依赖。
第三,在维护一个遗留的大型系统时,可能这个系统已经非常难以维护和扩展了。可以为新系统开发一个外观Facade类,来提供设计粗糙或高度复杂的遗留代码的比较清晰简单的接口,让新系统与Facade对象交互,Facade与遗留代码交互所有复杂的工作。
转载于:https://www.cnblogs.com/aehyok/p/3315983.html
设计模式之十(外观模式)相关推荐
- 从王者荣耀看设计模式(十.外观模式)
##从王者荣耀看设计模式(外观模式) 一.简介 王者荣耀是由多人协同开发而成,每个人负责游戏的一个或多个子功能,一个完整的功能是由很多已开发的子功能组合成的.我们要玩游戏时,只需要打开王者荣耀APP, ...
- 【白话设计模式二】外观模式(Facade)
为什么80%的码农都做不了架构师?>>> #0 系列目录# 白话设计模式 工厂模式 单例模式 [白话设计模式一]简单工厂模式(Simple Factory) [白话设计模式二] ...
- Java描述设计模式(12):外观模式
本文源码:GitHub·点这里 || GitEE·点这里 一.生活场景 1.场景描述 在移动互联网没有普及之前,去饭店吃饭的流程大致如下:选座位,排队,点菜,结账.后来移动互联网普及,通过手机APP就 ...
- 设计模式学习笔记——外观模式
外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口.这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性. 这种模式涉及 ...
- [学习笔记]设计模式[6]-{适配器模式外观模式}
设计原则 最少知识原则:只和你的密友谈话 这个原则的意思是,在系统设计的过程中,不要让太多的类耦合在一起,免得对系统一部分的修改会影响到其他部分.在设计系统之前,应该首先注意对象与对象之间的交互关系, ...
- java设计模式之九外观模式(Facade)
外观模式是为了解决类与类之家的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合度,该模式中没有涉及到接口 ...
- 《研磨设计模式》chap3 外观模式Facade
1. 场景1 客户自己装机,需要一一去买配件:cpu.主板... 找专业的公司,由公司去处理: 2. 场景2 代码生成工具有4个模块 client使用时依次创建3个对象 public class Cl ...
- 设计模式之Facade(外观)模式
我们通过一个简单的开关电脑模拟程序来说明Facade模式(外观模式) CPU类 public class Cpu { public void start() { system.out.prin ...
- 设计模式之【外观模式-Facade】
外观模式(Facade) 外观模式是为了解决类与类之家的依赖关系的 像spring一样,可以将类和类之间的关系配置到配置文件中 而外观模式就是将他们的关系放在一个Facade类中 降低了类类之间的耦合 ...
- 设计模式C++实现 —— 外观模式、组合模式
外观模式应该是用的很多的一种模式,特别是当一个系统很复杂时,系统提供给客户的是一个简单的对外接口,而把里面复杂的结构都封装了起来.客户只需使用这些简单接口就能使用这个系统,而不需要关注内部复杂的结构. ...
最新文章
- mysql主从状态异常解决办法
- java模拟国际象棋游戏_java国际象棋小游戏
- 梓益C语言学习笔记之链表&动态内存&文件
- oracle中dlink使用,Oracle,MetaLink,中文使用指南
- 将jar添加到发布目录_第32批免购置税新能源车型目录发布;通用BEV3平台将入华...
- Unity5 Sprite 图集打包 AssetBundle 更新探索
- “互联网+”大赛之AI创新应用赛题攻略:大胆脑洞,共绘智慧生活蓝图
- linux系统vnc无法远程桌面,linux下vnc远程桌面连接方法分享
- Timer源码之TaskQueue
- 多任务计时器anytime
- 2020年度博客之星发榜了,第一次参加,第70名,感谢给我投票的老铁们,2021继续努力!
- 360与QQ大战观感
- 灵遁者散文小说集《从今往后》:永远都是开始
- 20篇高质量程序人生文章分享,做开发不仅仅只有代码
- 泽塔云荣膺“中国高科技高成长50强”,成唯一上榜超融合企业
- 工作心得之接口数据同步
- 大炮评级:玩你只是寂寞,玩死你才是目的,我可是币圈墓地!
- 大数据多维分析常用操作图解 OLAP Operations
- (Java)类的接口实验
- 宁夏谷歌地球高程DEM等高线下载
热门文章
- 联想Z5手机夺得京东销量第一,联想这是要翻盘的节奏吗?
- C++的int初始化
- 1 数列分块入门_线性代数入门——利用分块矩阵简化矩阵乘法运算
- java rc4_nodejs 和 java 进行 rc4 加密得到的结果不一样
- @value注解_Java系列之注解
- java 数字图片识别_java – 识别图像中的数字
- 内存颗粒位宽和容量_64M的SDRAM颗粒 一般内存是多大的?
- iis mysql版本切换_MySQL+PHP配置 Windows系统IIS版(转)
- 介绍几个医学图像处理会议
- Centos6.10源码部署zabbix-3.2.6