《第8讲门面模式ppt课件》由会员分享,可在线阅读,更多相关《第8讲门面模式ppt课件(16页珍藏版)》请在金锄头文库上搜索。
1、The Facade Pattern门面模式子系统及其的客户端n通常,设计师在处理复杂系统时的一个常用方法是“分而治之”,但这样做的结果是一个系统或子系统中会有很多的类。n使用这个子系统的客户端虽然只关注某些特定的功能,但却需要跟子系统内部的许多对象打交道才能达到目的。这使得客户端的逻辑变得不必要的复杂,维护成本提高、复用率降低。现实生活中的例子-医院n挂号、门诊、划价、化验、收费、取药等是这个子系统的中的各个类。用户看一个病需要与这些“类打交道,非常不容易。解决办法n设立接待员,由接待员代办挂号、划价、缴费、取药等。病人只接触接待员。什么是门面模式n门面模式为子系统提供一个统一的高层接口,供
2、外部客户使用。n门面模式提供了一个更高层次的接口,使得子系统更容易使用。门面模式的结构FacadeClient2Client1Client3subsystem门面模式的实现n定义一个或多个具备所需接口的新类门面类)n新类门面类使用原有的系统。n客户使用门面类对象与原系统打交道。门面模式的变体n典型的门面模式强调不应该引入新的功能。n门面模式的变体可以适当引入新的功能,补充系统的原有功能。什么时候使用门面模式n客户只需要使用某个复杂系统的子集,或者需要以一种特殊的方式与系统交互时,使用门面模式。n当需要跟踪系统的使用情况时,使用门面模式。因为所有对系统的访问都通过Facade,所以可以很容易的监
3、视系统的使用。n希望封装或者隐藏原系统时。n编写新类的成本小于所有人学会使用或维护原系统所需的成本时。迪米特法则n“只与你直接的朋友们通信。”n迪米特法则要求一个对象的相互作用是短程的。朋友的数目越少越好。其实质是减少耦合度。n门面模式符合迪米特法则讨论n在什么情况下应该编写一个新系统而不是用Facade封装老系统?一个例子-保安系统n一个保安系统由两个录像机、三个电灯、一个遥感器和一个报警器组成。保安系统的操作人员经常要将这些仪器启动和关闭。一个例子-保安系统n不使用门面模式的情况下,操作员必须直接操作所有仪器。使用门面模式的保安系统n准备一个系统的控制台,作为保安系统的用户界面门面操作员通
4、过操作这个简化的界面就可以控制所有的仪器。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类提供的方法就可以实现查询、修改、追加、删除记录等操作。(注:jdbcSelect()方法返回的类型是ResultSet。各方法所需的参数请自行设计)n编写一个测试主类,测试你的JDBCFacade类。n实验后一周内将实验报告发至sam84149gmail