第10章 外观模式
EJB设计中一种动态会话外观模式的实现策略

变 量 中 所 定 义 的 cet0 f dr ) 方 法 来 和 E ty en进 行 数 rae 、n e( 等 i ni B a t
M aieEn ie r g , a g h uM a t eCo e eGu n z o 1 7 5Ch a r gn e n Gu n z o ri l g , a g h u 5 2 , ’ ) n i im 0 m
A src:e inf aeiac ss J eg ae i ' i lm na o tel a o t f eo ty eniuul sda a — b t t so c ls B d snp ̄ m,ni smpe e t n,h cl mei e a f n t a sayue s a S s i d s a iE i t i t o h n rc e ib s l i n
K yw r :BD s ae s e od E eg Ptm ; sJ i n t  ̄ 1会 话 外观模 式 简介
c e i a d v P fco; tf e so Fc eaa , e i Iea S h a J e t n n rc l
码如下 :
会 话 外 观 (es nF c e 是 一 种 经 典 的 E B设 计 模 式 , 模 S si aa ) o d J 该 式 在 实 现 时 ,通 常 都 是 将 所 封 装 E ty en的 Icl o 接 口作 ni B a t x aH me  ̄ 为 会 话 外 观 Ssi B a 的一 个 实 例 变 量 。通 过 调用 该 接 口实 例 es n e o n
维普资讯
・
研 究 开 发 ・ ・・ ・ ・ ・
电脑 知 识 与 技 术
EB J 设计 中一种动态会话外观模式 的实现 策略
Head First 设计模式

编辑推荐本书荣获2005年第十五届Jolt通用类图书震撼大奖。
本书英文影印版被《程序员》等机构评选为2006年最受读者喜爱的十大IT图书之一 。
本书趋近完美,因为它在提供专业知识的同时,仍然具有相当高的可读性。
叙述权威、文笔优美。
本书共有14章,每章都介绍了几个设计模式,完整地涵盖了四人组版本全部23个设计模式。
前言先介绍这本书的用法;第1章到第11章陆续介绍的设计模式为Strategy、Observer、Decorator、Abstract Factory、Factory Method、Singleton、Command、Adapter、Facade、Templat Method、Iterator、Composite、State、Proxy。
最后三章比较特别。
第12章介绍如何将两个以上的设计模式结合起来成为新的设计模式(例如著名的MVC模式),作者称其为复合设计模式(这是作者自创的名称,并非四人组的标准名词),第13章介绍如何进一步学习设计模式,如何发觉新的设计模式等主题,至于第14章则很快地浏览尚未介绍的设计模式,包括Bridge、Builder、Chain of Responsibility、Flyweight、Interpreter、Mediator、Memento、Prototype、Visitor。
第1章还介绍了四个OO基本概念(抽象、封装、继承、多态),而第1章到第9章也陆续介绍了九个OO原则(Principle)。
千万不要轻视这些OO原则,因为每个设计模式背后都包含了几个OO原则的概念。
很多时候,在设计时有两难的情况,这时候我们必须回归到OO原则,以方便判断取舍。
可以这么说:OO原则是我们的目标,而设计模式是我们的做法。
本书作者Eric Freeman和Elisabeth Freeman是作家、讲师和技术顾问。
Eric拥有耶鲁大学的计算机科学博士学位,Elisabath拥有耶鲁大学的计算机科学硕士学位。
3、4第二章 幼儿园教育评价理论模式

第五节 司法式评价模式
一、司法式评价模式的实施步骤 (一)第一阶段为问题的提出 (二)第二阶段为问题的选择 (三)第三阶段为论点的准备 (四)第四阶段为问题的讨论会 二、司法式评价模式实施的主要角色 (一)调查小组 (二)案件分析者 (三)案件的提出者 (四)会议主席 (五)问题澄清小组 (六)小组促进者 三、司法式评价模式与对手评价
无论哪一类评价模式,它既要规定评价者应该做些 什么,又要说明如何做这些。因此,了解教育评 价的理论模式,有助于我们加深对教育评价内涵 的理解,规范而科学地开展教育评价活动。
第一节 行为目标评价模式
行为目标评价模式又可称为“泰勒模式”, 是由被称为“评价之父”的泰勒提出的。
一、评价原理和课程原理 (一)评价原理 七个步骤 五个内容 (二)课程原理 二、行为目标评价模式以目标为中心 三、目标行为模式运用的可能性
幼儿园教育评价
<谢 敏>
2013年10月
第二章 幼儿园教育评价的理论模式
评价模式通常可以分为两大类:
一类是指令性式的,包括一系列规则、规定、 禁令,以及说明什么是好的、恰当的评价 和怎样进行评价等指导性文件,它对评价 提供了统一的格式和策略;
一类是说明性的,是对评价活动的描述、预测和解 释,它提供了一系列得到公认的进行评价的可能 途径。
第四节 外观评价模式与应答评价模 式
一、外观评价模式 (一)收集与评价对象相关的资料 1、前提条件 2、相互作用 3、结果 (二)描述和判断的评价活动 (三)外观评价模式的现实意义
二、应答评价模式 (一)什么是应答评价模式 (二)应答评价模式的步骤与方法 1、应答评价模式的步骤 2、信息收集与观察 三、应答评价模式与外观评价模式
埃夫特 ER 系列机器人 操作手册说明书

2 手册使用 ........................................................................................................................................8
1.3 各工作过程中的安全注意事项 ...............................................................................................12
第 2 章 欢迎使用埃夫特机器人 ........................................................................................................... 20
相关活动的人员,在学习完毕埃夫特公司准备的培训课程前,请勿赋予其
对机器人的操作使用权限。
版本ቤተ መጻሕፍቲ ባይዱ:V 3.3.0.1
1
目录
概 述 ......................................................................................................................................................... 8
外观模式ppt较完整版

外观模式 模式分析
外观模式的目的在于降低系统的复杂程度。 外观模式的目的在于降低系统的复杂程度。 降低系统的复杂程度 外观模式从很大程度上提高了客户端使用的便 外观模式从很大程度上提高了客户端使用的便 捷性,使得客户端无须关心子系统的工作细节, 捷性,使得客户端无须关心子系统的工作细节, 通过外观角色即可调用相关功能。 通过外观角色即可调用相关功能。
外观模式
模式扩展
一个系统有多个外观类
• 在外观模式中,通常只需要一个外观类,并且此外观类只有一 个实例,换言之它是一个单例类。在很多情况下为了节约系统 资源,一般将外观类设计为单例类。当然这并不意味着在整个 系统里只能有一个外观类,在一个系统中可以设计多个外观类, 每个外观类都负责和一些特定的子系统交互,向用户提供相应 的业务功能。
引入外观角色之后,用户只需要直接与外观角色交互, 引入外观角色之后,用户只需要直接与外观角色交互, 用户与子系统之间的复杂关系由外观角色来实现, 用户与子系统之间的复杂关系由外观角色来实现,将复 杂系统的内部子系统与客户程序之间的依赖解耦, 杂系统的内部子系统与客户程序之间的依赖解耦,降低 了系统的耦合度。 了系统的耦合度。
外观模式facade模式外观模式facade模式外观模式产生原因在软件开发过程中程序一般会越做越大而这样系统中类及子系统之间的影响会使彼此间的关系变得错综复杂即过多的耦合这就导致了随着系统中类或子系统发生变化与之相关联的子系统或类就需要发生变化如何应对变化是软件系统开发过程中非常重要的一个问题
外观模式(Facade模式)
外观模式
(3)硬盘类Disk.java其中定义了加载和卸载硬盘的函数。 硬盘类Disk.java package structure.facade; public class Disk { public void startup() { } } public void shutdown() { }
拉奥孔

窗体顶端拉奥孔·作者:(俄国)莱辛译者:朱光潜·出版社:人民文学出版社·出版时间:1979年08月·国际ISBN:9787020067725·十位书号:7020067727·图书编号:10464167·定价:14.00 元·卓越网¥11.70 元【到卓越购买】免费送货更新于:2009-08-19·蔚蓝网¥10.90 元【到蔚蓝购买】更新于:2009-08-19《拉奥孔》读后感:研究戏剧的,对戏剧感兴趣的看看吧。
经典之作呀。
【完全阅读本读后感】《拉奥孔》内容简介:第一个对画和诗进行比较的人是一个具有精微感觉的人,他感觉到这两种艺术对他所发生的效果是相同的。
他认识到这两种艺术都向我们把不在目前的东西表现为就像在目前的,把外形表现为现实;它们都产生逼真的幻觉,而这两种逼真的幻觉都是令人愉快的。
另外一个人要设法深入窥探这种快感的内在本质,发见到在画和诗里,这种快感都来自同一个源泉。
美这个概念本来是先从有形体的对象得来的,却具有一些普遍的规律,而这些规律可以运用到许多不同的东西上去,可以运用到形状上去,也可以运用到行为和思想上去。
第三个人就这些规律的价值和运用进行思考,发见其中某些规律更多地统辖着画,而另一些规律却更多地统辖着诗;在后一种情况之下,诗可以提供事例来说明画,而在前一种情况之下,画也可以提供事例来说明诗。
第一个人是艺术爱好者,第二个人是哲学家,第三个人则是艺术批评家。
头两个人都不容易错误地运用他们的感觉或论断,至于艺术批评家的情况却不同。
《拉奥孔》作者简介:莱辛(1729-1781),德国启蒙运动时期重要作家和文艺理论家。
主要作品有悲剧《撒拉·萨姆逊小姐》《爱米丽娅·迦洛蒂》,喜剧《明娜·封·巴恩黑尔姆》,诗剧《智者纳旦》,戏剧评论集《汉堡剧评》,美学论著《拉奥孔》以及三卷集的《寓言》。
《火焰纹章if》一周目困难难度规程攻略攻略_全通
15
14章
主人公与フランネル对话
ギュンター
高级骑士
10
15章
初期配置
フェリシア
ジョーカー
女仆
执事
13
16章
出击准备时加入
(男主人公的情况下ジョーカー加入、女主人公的情况下フェリシア加入)
マークス
圣骑士
4
16章
初期配置
アシュラ
冒险者
2
16章
完成本章后选「いいえ」。
若选择「はい」则不会加入,取而代之获得移动+1的鞋子
在自宅中可以实现搞基和百合,增长人物的好感度开启支援对话。地图上按L键可以进入第一人称视角观看风景,但不能移动非常遗憾。斗技场战斗是
关于龙脉值的获取,这里暗夜的同学可能要悲剧了,因为白夜可以通过遭遇战获得龙脉,而且花钱可以开启遭遇战。当然也可以通信后通过拜访伙伴的城获得一点。前期基本建造一个房屋都是消耗一点龙脉,要升级建造可能就要花费三点以上。
サイラス
初级骑士
6
7章
地3回合加入
エリーゼ
杖术骑士
5
7章
第3回合加入
ハロルド
斧战士
7
7章
第4回合加入
エルフィ
重甲骑士
6
7章
第4回合加入
モズメ
村人
1
外伝
外传モズメ 主人公与モズメ对话
オーディン
暗黑法师
5
8章
第2回合加入
ゼロ
盗贼
8
8章
第2回合加入
アクア
歌姫
1
9章
初期配置
ニュクス
暗黑法师
9
9章
主人公与ニュクス对话
Pro_Engineer4.0机械设计教程1-第一章
1 .1 1 .2 1 .3 1 .4
PRO/E4.0软件特性 PRO/E4.0的启动 PRO/E4.0工作界面 工作目录设置
1.1 Pro/ENGINEER4.0软件概述 1.1.1 Pro/ENGINEER4.0软件主要特性
1 单一数据库,全相关性 2.三维实体设计 3.以特征为设计的基本单元 4.参数化设计
(5)“分析”菜单:包括对模型的各项分析命令,主要针对所 建立的二维草图、工程图、三维实体模型等进行分析,包括 距离、长度、角度、直径、质量分析、表面积、曲线曲面分 析等。 (6)“信息”菜单:包括显示各项工程数据的命令,它能获得 一些已经建立好的模型关系信息,并列出报告。 (7)“应用程序”菜单:包括利用各种不同的Pr0/E的模块命 令,使用“应用程序”菜单可以在Pr0/E的各模块之间进行 切换。 (8)“工具”菜单:包括定制工作环境的各项命令。 (9)“窗口”菜单:包括管理多个窗口的命令。 (10)“帮助”菜单:包括使用帮助文件的命令。
第一章Pr0/ENGINEER Wildfire 4.0概述
2. 菜单栏:
菜单栏又称为主菜单栏,与菜单管理器相区别。菜 单栏位于标题栏的下方,排列着各种用途的下拉菜单选 项,进入Pr0/E系统的不同模块,系统会加载不同的菜 单,图1-5是零件设计模块的菜单栏。
第一章Pr0/ENGINEER Wildfire 4.0概述
第一章Pr0/ENGINEER Wildfire 4.0概述
图1-2 Pr0/ENGINEER起始界面
第一章Pr0/ENGINEER Wildfire 4.0概述
3.利用【运行】命令启动
在任务栏中选择【开始】一【运行】命令, 打开“运行”对话框,图1-3示,输入或查找Pro/E 执行文件proe.exe的完整路径与文件名, 单击【确定】即可启动Pro/E系统。
软件设计模式试题集_附答案
二.填空
1. 适配器模式,分为类的适配器和对象的适配器两种实现。其中类的适配器采用的是继承关系,而对象适配器采
用的是(组合聚合)关系。
2. Adapter 模式有两种类型有 :对象 Adapter 模式、(类 Adapter 模式)。
3. UML 是一种用来创建(程序模型)的图像语言。
4. (Adapter 适配器)模式使原本接口不兼容而不能一起工作的类可以一起工作。
D.在方法中定义算法的框架,而将算法中的一些操作步骤延迟到子类中实现。
2. Façade(外观)模式的意图是()。
A. 希望简化现有系统的使用方法,你需要定义自己的接口。
B. 将一个无法控制的现有对象与一个特定借口相匹配。
C. 将一组实现部分从另一组使用它们的对象中分离出来。
D.你需要为特定的客户(或情况)提供特定系列的对象。
当拥有一个复杂的系统时,Façade(外观)模式使我们只需要使用它的一部分功能。最终我们将得到一个更简
单,更容易使用的或根据我们的需要定制的系统。
3. Façade 模式的意图是什么?
望那个简化现有系统的使用方法,需要定义自己的接口。
4. 在 Facade 模式中,客户是如何使用子系统的?
六.应用题
的那些类可以一起工作。
2. Adapter 模式的最常见的用法是什么?该模式可以使你不用操心什么方面?
Adapter 模式最通常的用途就是保持多态。Adapter 模式让我们在进行设计时不必再担心现存类的接口问题。
3. Adapter 模式问题的解决方案以及如何实现?
解决方案是 Adapter 模式用我们需要的接口对无法修改的类进行包装。实现:将现存的类包含在另一个类之中。
2. 下面不属于创建型模式的有()。
第10章固有免疫细胞及其主要生物学作用作业及答案--医学免疫学
第10章固有免疫细胞及其主要生物学作用作业及答案--医学免疫学第10章固有免疫细胞及其主要生物学作用一.名词解释:1.固有免疫(innate immunity)2.模式识别受体(pattern recognition receptors,PRR)二. 单选题1.婴幼儿易发中枢神经系统感染,是由于( )A. 物理屏障发育尚未完善所致 B.化学屏障发育尚未完善所致C.微生物屏障尚未发育完善所致D.血-脑屏障尚未发育完善所致E.血-胎屏障尚未发育完善所致2.组成化学屏障的杀、抑菌物质不包括( )A.α-防御素 B.脂肪酸 C.乳酸D.溶菌酶 E.抗菌肽3.固有免疫细胞所不具备的应答特点是( )A. 直接识别病原体某些共有高度保守的配体分子B.识别结合相应配体后,立即产生免疫应答C.经克隆扩增和分化后,迅速产生免疫效应D. 没有免疫记忆功能,不能引起再次应答E. 免疫应答维持时间较短4.可直接作用于G+菌细胞壁、使之溶解破坏的物质是( )A. C—反应蛋白 B.穿孔素 C. 溶菌酶D.甘露聚糖结合凝集素 E.TNF-α5.瞬时固有免疫应答发生在感染后()A.0-4小时;B.4-96小时;C.24-48小时;D.96小时;E.4-5天6.γδT细胞的表现型是()A.CD4+CD8+;B. CD4+CD8-;C. CD4-CD8+;D. CD4-CD8-;E. CD2+CD3-7. B1-B细胞抗体应答的特点是()A.可针对TD-Ag产生体液免疫应答;B.针对TI-Ag产生体液免疫应答;C.诱导产生抗体为IgG;D. 具有免疫记忆;E.作用时间长8.巨噬细胞不具备的依氧杀菌系统是()A.过氧化氢;B.髓过氧化物酶;C.O2-;D.OH-;E.1O29.T细胞中参与非特异性免疫应答的亚群是()A.TH细胞;B.Tc细胞;C.TCRαβ+细胞;D. TCRγδ+细胞;E.T DTH10.B-1B细胞识别抗原()A.识别蛋白质抗原;B.识别糖蛋白抗原;C.识别LPS;D.识别抗原有严格特异性;E.识别人正常抗原11.巨噬细胞可提呈()A.TI-抗原;B.细菌抗原;C.病毒抗原;D.肿瘤抗原;E.LPS12.下列哪一种不是固有免疫细胞的受体()A.Toll样受体B.甘露糖受体C.清道夫受体D.细胞因子受体E.TCR13.γδT细胞所不具备的生物学作用是()A. 非特异性杀伤某些病毒感染的靶细胞B. 非特异性杀伤某些肿瘤细胞C. 分泌细胞因子介导炎症反应D.分泌细胞因子参与免疫调节E.非特异性杀伤损伤衰老的自身细胞14.自然杀伤细胞能够杀伤病毒感染细胞和肿瘤细胞,而对正常宿主细胞不杀伤的机制是()A. KAR与MHCⅠ类分子结合B. 自然杀伤细胞表面具有识别自身受体C. KIR与细胞表面糖类分子结合D.KAR与MHCⅡ类分子结合E.肿瘤细胞表面缺乏MHCⅠ类分子,KIR不能与MHCⅠ类分子结合15.固有免疫细胞不包括()A.T细胞B.巨噬细胞C.NK细胞D.中性粒细胞E.单核细胞16.诱导初始T细胞活化的细胞是()A.B细胞B.巨噬细胞C.NK细胞D.中性粒细胞E.DC三.多项选择题:1.天然免疫细胞识别抗原的特点是()A.非特异性识别B.识别多种抗原的“共性”C.通过抗原特异性受体识别抗原D.通过模式识别受体识别抗原E.无MHC限制性2.非特异性识别抗原的细胞是()A.T细胞B.B细胞C.巨噬细胞D.中性粒细胞E.树突状细胞3. 体内执行非特异性免疫功能的淋巴细胞是()A. γδT细胞 B.αβT细胞 C. B1细胞 D. B2细胞 E. NK T细胞4.能诱导细胞凋亡的物质是()A.穿孔素 B.TNF C. FasLD.防御素 E.颗粒酶5.模式识别受体()A.较少多样性B.是胚系基因重排后编码的产物C.直接识别病原体表面某些共有的配体分子D.只表达于固有免疫细胞膜表面,无游离形式存在E.可识别凋亡细胞表面某些共有特定分子,如磷脂酰丝氨酸等6.表达于病原菌表面的病原相关分子模式包括()A. G-菌的脂多糖 B.G+菌的肽聚糖C.细菌表面的甘露糖残基 D.细菌非甲基化DNACpG序列E.真菌的酵母多糖7.固有免疫细胞表面模式识别受体包括()A. Toll样受体B. 清道夫受体 C.甘露糖受体D. C3b受体 E.IgGFc受体8.参与Ⅰ型超敏反应的固有免疫细胞是()A.单核细胞B.嗜碱性粒细胞C.中性粒细胞D.肥大细胞E.嗜酸性粒细胞四.B型选择题A.物理屏障B. 化学屏障C.微生物屏障D. 血-脑屏障E.血-胎屏障1.妊娠3个月内孕妇感染了病毒容易导致流产,是由于哪种屏障部完善()2.构成人体防御感染的第一道防线是()3.滥用抗生素能够破坏哪种屏障()A.甘露糖受体B.清道夫受体C.FcεRD.调理性受体E.KAR4.能够识别G-菌脂多糖的受体是()5.能够与免疫球蛋白Ig Fc的受体是()6.NK细胞具有的受体是()7.肥大细胞具有的受体是()A.单核细胞B.Th细胞C.CTL细胞D.NK细胞E.B细胞8.具有非特异性细胞毒作用的细胞是()9.具有特异性细胞毒作用的细胞是()10.具有分泌抗体功能的细胞是()11.具有免疫监视的固有免疫细胞是()五.问答题:1.固有免疫系统的组成有哪些?2.组织屏障作用的组成及其作用?3.固有免疫细胞有哪些?4. 患儿,男,3岁,因高热、嗜睡入院。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
} public int getAmount(){ return amount; } }
1.子系统(Subsystem)_2 : Charge.java .子系统( ) public class Charge{ public final int basicCharge=12; CheckWord checkWord; Charge(CheckWord checkWord){ this.checkWord=checkWord; } public void giveCharge(){ int charge=checkWord.getAmount()*basicCharge; System.out.println("广告费用 广告费用:"+charge+"元"); 广告费用 元 } }
– CheckWord 的实例负责检查广告内容含有的字符个数。 的实例负责检查广告内容含有的字符个数。 – Charge类的实例负责计算费用 类的实例负责计算费用 – TypeSeting 的实例负责对广告进行排版
Hale Waihona Puke 设计一个系统来处理用户请求, 外观模式简化用户和上述 设计一个系统来处理用户请求 用外观模式简化用户和上述 子系统所进行的交互。 子系统所进行的交互。
外观模式简化用户和子系统所进行的交互。 外观模式简化用户和子系统所进行的交互。 简化用户和子系统所进行的交互 关键:为子系统提供一个称作外观的类, 关键:为子系统提供一个称作外观的类,该外观 外观的类 类的实例负责和子系统中类的实例打交道。 类的实例负责和子系统中类的实例打交道。 当用户想要和子系统中的若干个类的实例打交道 可以代替地和子系统的外观类的实例打交道。 时,可以代替地和子系统的外观类的实例打交道。
:TypeSeting.java 1.子系统(Subsystem)_3 :TypeSeting.java 子系统(Subsystem)
public class TypeSeting{ String advertisement; public TypeSeting(String advertisement){ this.advertisement=advertisement; } public void typeSeting(){ System.out.println("广告排版格式 广告排版格式:"); 广告排版格式 System.out.println("********"); System.out.println(advertisement); System.out.println("********"); } }
Provide a unified interface to a set of interfaces in a subsystem.Facade defines a higher-level interface that makes the subsystem easier to use.
一 、 概述
用户想要在报纸上登广告, 用户想要在报纸上登广告,只需将广告的内容交 子系统的外观实例即可, 即可 给子系统的外观实例即可,该实例将负责和子系 统中类的实例进行交互完成用户所指派的任务。 统中类的实例进行交互完成用户所指派的任务。 使用String字符串来表示广告的内容,比如: 字符串来表示广告的内容,比如: 使用 字符串来表示广告的内容 String context=“鹿花牌洗衣机,价格 鹿花牌洗衣机, 鹿花牌洗衣机 价格2356元, 元 联系电话: 联系电话:1234567”; ;
运行结果
三、外观模式的优点
使客户和子系统中的类无耦合, 使客户和子系统中的类无耦合,并且使得子系 统使用起来更加方便。 统使用起来更加方便。 外观只是提供了一个更加简洁的界面, 外观只是提供了一个更加简洁的界面,并不影 响用户直接使用子系统中的类。 响用户直接使用子系统中的类。 子系统中任何类对其方法的内容进行修改, 子系统中任何类对其方法的内容进行修改,不 影响外观的代码。 影响外观的代码。
未使用外观模式的情况下, 未使用外观模式的情况下,保安系统的设计图
5
3.应用 Application.java
public class Application{ public static void main(String args[]){ ClientServerFacade clientFacade; String clientAdvertisement=“月光电脑,价格 月光电脑, 月光电脑 6356元,联系电话:1234567"; 元 联系电话: clientFacade=new ClientServerFacade(clientAdvertisement); clientFacade.doAdvertisement(); } }
外观模式的UML类图 外观模式的UML类图 UML
举例: 举例:
通过一个简单的子系统讲述外观模式中所涉及的各个角色。 通过一个简单的子系统讲述外观模式中所涉及的各个角色。 报社的广告子系统有三个类CheckWord、 Charge和 、 报社的广告子系统有三个类 和 TypeSeting类,各个类的职责如下: 类 各个类的职责如下:
第十章
外观模式
外观模式(也称为门面模式) 外观模式(也称为门面模式)
为系统中的一组接口提供一个一致的界面, 为系统中的一组接口提供一个一致的界面 , Façade 模式定义了一个高层接口, 模式定义了一个高层接口 , 这个接口使得这一子系 统更加容易使用。 统更加容易使用。
Facade Pattern
思考题
1. 在什么情况下应当使用外观模式? 在什么情况下应当使用外观模式? 2. 使用外观模式的优点有哪些? 使用外观模式的优点有哪些? 3. 比较外观模式、适配器模式和装饰模式的 比较外观模式、 异同 4. 一个保安系统有两个录像机、三个电灯、 一个保安系统有两个录像机、三个电灯、 一个遥感器和一个警报器组成, 一个遥感器和一个警报器组成,保安系统 的操作人员需要经常启动和关闭这些仪器, 的操作人员需要经常启动和关闭这些仪器, 不使用外观模式的情况下, 不使用外观模式的情况下,操作员必须直 接操作所有的设备。 接操作所有的设备。使用外观模式改进一 个保安系统
四、适合使用外观模式的情景
对于一个复杂的子系统, 对于一个复杂的子系统,需要为用户提供一个简 单的交互操作 不希望客户代码和子系统中的类有耦合, 不希望客户代码和子系统中的类有耦合,以便提 高子系统的独立性和可移植性 当整个系统需要构建一个层次结构的子系统, 当整个系统需要构建一个层次结构的子系统,不 希望这些子系统相互直接的交互
UML类图 UML类图
1.子系统(Subsystem)_1 : CheckWord.java .子系统( ) public class CheckWord{ public final int basicAmount=85; String advertisement; int amount; public CheckWord(String advertisement){ this.advertisement=advertisement; } public void setChargeAmount(){ amount=advertisement.length()+basicAmount;
外观的意图是提供一个简单的接口, 外观的意图是提供一个简单的接口,让一个 子系统更易于使用
二、外观模式的结构与使用
模式的结构中包括两种角色: 模式的结构中包括两种角色:
子系统(Subsystem):若干个类的集合, 子系统(Subsystem):若干个类的集合,这些类 ):若干个类的集合 的实例协同合作为用户提供所需要的功能, 的实例协同合作为用户提供所需要的功能,子系统中 任何类都不包含外观类的实例引用 外观(Facade) 一个类, 外观(Facade) :一个类,包含子系统中全部 或部分类的实例引用, 或部分类的实例引用,当用户想要和子系统中的若干 个类的实例打交道时, 个类的实例打交道时,可以代替地和子系统的外观类 的实例打交道
2.外观(Facade): ClientServerFacade.java 外观(Facade)
public class ClientServerFacade{ private CheckWord checkWord; private Charge charge; private TypeSeting typeSeting; String advertisement; public ClientServerFacade(String advertisement){ this.advertisement=advertisement; checkWord=new CheckWord(advertisement); charge=new Charge(checkWord); typeSeting=new TypeSeting(advertisement); } public void doAdvertisement(){ checkWord.setChargeAmount(); charge.giveCharge(); typeSeting.typeSeting(); } }