




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、门面模式The Facade Pattern门面模式子系统及其的客户端n通常,设计师在处理复杂系统时的一个常用方法是“分而治之”,但这样做的结果是一个系统或子系统中会有很多的类。n使用这个子系统的客户端虽然只关注某些特定的功能,但却需要跟子系统内部的许多对象打交道才能达到目的。这使得客户端的逻辑变得不必要的复杂,维护成本提高、复用率降低。门面模式现实生活中的例子-医院n挂号、门诊、划价、化验、收费、取药等是这个子系统的中的各个类。用户看一个病需要与这些“类”打交道,非常不容易。门面模式解决办法n设立接待员,由接待员代办挂号、划价、缴费、取药等。病人只接触接待员。门面模式什么是门面模式n门面模式
2、为子系统提供一个统一的高层接口,供外部客户使用。n门面模式提供了一个更高层次的接口,使得子系统更容易使用。门面模式门面模式的结构FacadeClient2Client1Client3subsystem门面模式门面模式的实现n定义一个(或多个)具备所需接口的新类(门面类)n新类(门面类)使用原有的系统。n客户使用门面类对象与原系统打交道。门面模式门面模式的变体n典型的门面模式强调不应该引入新的功能。n门面模式的变体可以适当引入新的功能,补充系统的原有功能。门面模式什么时候使用门面模式n客户只需要使用某个复杂系统的子集,或者需要以一种特殊的方式与系统交互时,使用门面模式。n当需要跟踪系统的使用情况
3、时,使用门面模式。因为所有对系统的访问都通过Facade,所以可以很容易的监视系统的使用。n希望封装或者隐藏原系统时。n编写新类的成本小于所有人学会使用或维护原系统所需的成本时。门面模式迪米特法则n“只与你直接的朋友们通信。”n迪米特法则要求一个对象的相互作用是短程的。朋友的数目越少越好。其实质是减少耦合度。n门面模式符合迪米特法则门面模式讨论n在什么情况下应该编写一个新系统而不是用Facade封装老系统?门面模式一个例子-保安系统n一个保安系统由两个录像机、三个电灯、一个遥感器和一个报警器组成。保安系统的操作人员经常要将这些仪器启动和关闭。门面模式一个例子-保安系统n不使用门面模式的情况下,
4、操作员必须直接操作所有仪器。门面模式使用门面模式的保安系统n准备一个系统的控制台,作为保安系统的用户界面(门面)操作员通过操作这个简化的界面就可以控制所有的仪器。n请同学分小组设计方案,写出java源代码。门面模式课内练习n家庭影院中有CD机,DVD机,收音机Turner,录影机Recorder,功放Amplifier,升降屏幕Screen等,请为家庭影院系统设计一个请设计一个门面,通过它可以方便的操作其他设备放电影等。n编写一个测试主类,测试你的程序。门面模式实战演练nJDBC访问数据库需要用到一些相关的类和接口,主要有数据库的jdbc驱动程序,DriverManager,Connection, Statement, ResultSet,SQLException等。为了将这些复杂的细节与数据库应用程序的设计者隔离开,请设计一个JDBCFacade类,该类提供jdbcOpen(), jdbcSelect(), jdbcUpdate(), jdbcInsert(), jdbcDelete(), jdbcClose()等方法,数据库应用程序的开发者直接使用JDBCFacade类提供的方法就可以实现查询、修改、追加、删除记录等操作。(注:jdbcSelec
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国铜版纸行业市场调研分析及投资战略规划报告
- 2025年度光伏发电项目工程付款协议书
- 二零二五年度超市租赁合同排他性节假日营业时间协议
- 2025年度品牌使用权转让协议书模板
- 2025年度地磅租赁及智能数据分析合同
- 2025年度交通事故人身伤害赔偿标准合同
- 2025-2030年中国摩配把座总成项目投资可行性研究分析报告
- 2025年度股权赠与及公司股东权益调整及风险控制合同
- 欧式装修合同样本专业版
- 2025年度文化产业扶持借款协议
- 2024-2025年中国锂电池隔膜行业未来发展趋势分析及投资规划建议研究报告
- 软件系统项目实施方案(共3篇)
- 2025年山东药品食品职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2025年恩施市福牛物业有限公司招聘笔试参考题库含答案解析
- 《滚动轴承-》课件
- 2025年中国CAR-T免疫细胞治疗行业市场发展前景研究报告-智研咨询发布
- 妊娠期用药安全课件
- 月子会所护理人员礼仪
- GB/T 44958-2024化工设备安全管理规范
- 《化妆品包装材料相容性试验评估指南》
- 2025年轧钢原料工技能考试题库
评论
0/150
提交评论