收藏 分享(赏)

第8讲 门面模式.ppt

上传人:gnk289057 文档编号:9234595 上传时间:2019-07-30 格式:PPT 页数:16 大小:112KB
下载 相关 举报
第8讲 门面模式.ppt_第1页
第1页 / 共16页
第8讲 门面模式.ppt_第2页
第2页 / 共16页
第8讲 门面模式.ppt_第3页
第3页 / 共16页
第8讲 门面模式.ppt_第4页
第4页 / 共16页
第8讲 门面模式.ppt_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、The Facade Pattern 门面模式,子系统及其的客户端,通常,设计师在处理复杂系统时的一个常用方法是“分而治之”,但这样做的结果是一个系统或子系统中会有很多的类。 使用这个子系统的客户端虽然只关注某些特定的功能,但却需要跟子系统内部的许多对象打交道才能达到目的。这使得客户端的逻辑变得不必要的复杂,维护成本提高、复用率降低。,现实生活中的例子-医院,挂号、门诊、划价、化验、收费、取药等是这个子系统的中的各个类。用户看一个病需要与这些“类”打交道,非常不容易。,解决办法,设立接待员,由接待员代办挂号、划价、缴费、取药等。病人只接触接待员。,什么是门面模式,门面模式为子系统提供一个统一的

2、高层接口,供外部客户使用。 门面模式提供了一个更高层次的接口,使得子系统更容易使用。,门面模式的结构,Facade,Client2,Client1,Client3,subsystem,门面模式的实现,定义一个(或多个)具备所需接口的新类(门面类) 新类(门面类)使用原有的系统。 客户使用门面类对象与原系统打交道。,门面模式的变体,典型的门面模式强调不应该引入新的功能。 门面模式的变体可以适当引入新的功能,补充系统的原有功能。,什么时候使用门面模式,客户只需要使用某个复杂系统的子集,或者需要以一种特殊的方式与系统交互时,使用门面模式。 当需要跟踪系统的使用情况时,使用门面模式。因为所有对系统的访

3、问都通过Facade,所以可以很容易的监视系统的使用。 希望封装或者隐藏原系统时。 编写新类的成本小于所有人学会使用或维护原系统所需的成本时。,迪米特法则,“只与你直接的朋友们通信。” 迪米特法则要求一个对象的相互作用是短程的。朋友的数目越少越好。其实质是减少耦合度。 门面模式符合迪米特法则,讨论,在什么情况下应该编写一个新系统而不是用Facade封装老系统?,一个例子-保安系统,一个保安系统由两个录像机、三个电灯、一个遥感器和一个报警器组成。保安系统的操作人员经常要将这些仪器启动和关闭。,一个例子-保安系统,不使用门面模式的情况下,操作员必须直接操作所有仪器。,使用门面模式的保安系统,准备一

4、个系统的控制台,作为保安系统的用户界面(门面)操作员通过操作这个简化的界面就可以控制所有的仪器。 请同学分小组设计方案,写出java源代码。,课内练习,家庭影院中有CD机,DVD机,收音机Turner,录影机Recorder,功放Amplifier,升降屏幕Screen等,请为家庭影院系统设计一个请设计一个门面,通过它可以方便的操作其他设备放电影等。 编写一个测试主类,测试你的程序。,实战演练,JDBC访问数据库需要用到一些相关的类和接口,主要有数据库的jdbc驱动程序,DriverManager,Connection, Statement, ResultSet,SQLException等。为了将这些复杂的细节与数据库应用程序的设计者隔离开,请设计一个JDBCFacade类,该类提供jdbcOpen(), jdbcSelect(), jdbcUpdate(), jdbcInsert(), jdbcDelete(), jdbcClose()等方法,数据库应用程序的开发者直接使用JDBCFacade类提供的方法就可以实现查询、修改、追加、删除记录等操作。(注:jdbcSelect()方法返回的类型是ResultSet。各方法所需的参数请自行设计) 编写一个测试主类,测试你的JDBCFacade类。 实验后一周内将实验报告发至,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报