(转载)Java之外观模式(Facade Pattern)

1.概念

为子系统中的一组接口提供一个统一接口。Facade模式定义了一个高层接口,这个接口使得这子系统更容易使用。

2.UML

3.代码

下面是一个具体案例的代码:

 1 package facade;
 2 class DrawerOne {
 3     public void open(){
 4        System.out.println("第一个抽屉被打开了");
 5        getKey();
 6     }
 7     public void getKey(){
 8        System.out.println("得到第二个抽屉的钥匙");
 9     }
10 }
11 class DrawerTwo{
12     public void open(){
13        System.out.println("第二个抽屉被打开了");
14        getFile();
15     }
16     public void getFile(){
17        System.out.println("得到这个重要文件");
18     }
19 }
20 class DrawerFacade{
21     DrawerOne darwerOne=new DrawerOne();
22     DrawerTwo darwerTwo=new DrawerTwo();
23     public void open(){
24        darwerOne.open();
25        darwerTwo.open();
26     }
27 }
28 public class DrawerClient{
29     public static void main(String []args){
30        DrawerFacade drawer=new DrawerFacade();
31        drawer.open();
32     }
33 }

4.应用场景

1)为一个复杂子系统提供一个简单接口。

2)提高子系统的独立性。

3)在层次化结构中,可以使用Facade模式定义系统中每一层的入口。

原文链接:http://www.cnblogs.com/devinzhang/archive/2012/01/06/2315200.html

时间: 2024-10-09 21:04:05

(转载)Java之外观模式(Facade Pattern)的相关文章

设计模式 - 外观模式(facade pattern) 详解

外观模式(facade pattern) 详解 本文地址: http://blog.csdn.net/caroline_wendy 外观模式(facade pattern): 提供了一个统一的接口, 用来访问子系统中的一群接口. 外观定义了一个高层接口, 让子系统更容易使用. 外观模式包含三个部分: 1. 子系统: 子类, 单个复杂子类 或 多个子类; 2. 外观(facade)类: 把子系统设计的更加容易使用; 3. 客户: 只需要调用外观类. 与适配器模式(adapter pattern)的

二十四种设计模式:外观模式(Facade Pattern)

外观模式(Facade Pattern) 介绍为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用. 示例有一个Message实体类,某对象对它的操作有Get()方法,另外还有一个对象有一个Validate()方法来判断用户是否有权限.现在提供一个高层接口来封装这两个方法. MessageModel using System; using System.Collections.Generic; using System.Text; nam

设计模式-10外观模式(Facade Pattern)

1.模式动机 在现实生活中,常常存在办事较复杂的例子,如办房产证或注册一家公司,有时要同多个部门联系,这时要是有一个综合部门能解决一切手续问题就好了. 软件设计也是这样,当一个系统的功能越来越强,子系统会越来越多,客户对系统的访问也变得越来越复杂.这时如果系统内部发生改变,客户端也要跟着改变,这违背了"开闭原则",也违背了"迪米特法则(最少知道原则)",所以有必要为多个子系统提供一个统一的接口,从而降低系统的耦合度,这就是外观模式的目标. 2.模式定义 外观模式(F

设计模式(结构型)之外观模式(Facade Pattern)

PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN.因为CSDN也支持MarkDown语法了,牛逼啊! [工匠若水 http://blog.csdn.net/yanbober] 阅读前一篇<设计模式(结构型)之装饰者模式(Decorator Pattern)>http://blog.csdn.net/yanbober/article/details/45395747 概述 一个客户类需要和多个业务类交互,而这些业务类经常会作为整体出现,由于涉及到的类比较多,导致使

11.外观模式(Facade Pattern)

using System; namespace ConsoleApplication4 { class Program { /// <summary> /// 不使用外观模式的情况 /// 此时客户端与三个子系统都发送了耦合,使得客户端程序依赖与子系统 /// 为了解决这样的问题,我们可以使用外观模式来为所有子系统设计一个统一的接口 /// 客户端只需要调用外观类中的方法就可以了,简化了客户端的操作 /// 从而让客户和子系统之间避免了紧耦合 /// </summary> ///

门面模式-Facade Pattern(Java实现)

门面模式-Facade Pattern 为一个复杂的模块或子系统提供一个简单的供外界访问的接口 本文中代码的例子如下: 一个矿场有很多矿工, 矿工的职责也都不一样. 但一样的是什么呢? 一样的就是每个矿工每天都在重复一样的事情....起床, 上班, 工作, 下班, 睡觉...... 要想管理这么多矿工的这么多事情可不简单(好麻烦啊...挨个调用的时候开发者也有可能会忘掉某个人, 或者忘掉某一个方法)., 再举个栗子, 比如操作数据库也一样, 要加载驱动, 建立连接, 操作数据库, 关闭连接. 这

Web中的积累:外观模式 Facade

Web中的积累:外观模式 Facade 摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆木匠 希望转载,保留摘要,谢谢! 壹 前言 目测好久没写文章了,距离上一篇文章也有二十多天.我是怎么了?哈哈~,两个字:生命.生命似乎说大了,那健康吧.吃一堑长一智吧 思考对生活 对生命 我的信仰?佛教?基督?-当你生病了,有药吃.比如感冒了感冒药你会觉得药难吃.人吗就是那样,但当你想到了,你生病了没药可吃是多么无奈.比如我 胸闷 胸疼.随之而来的是蹦波劳累,上海

设计模式之门面模式---Facade Pattern

模式的定义 门面模式(Facade Pattern)也叫做外观模式,定义如下: Provide a unified interface to a set of interfaces in a subsystem. Facade defines a highet-level interface that makes the subsystem easier to use. 要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行.门面模式提供一个高层次的接口,使得子系统更易于使用. 类型 结构

研磨设计模式解析及python代码实现——(二)外观模式(Facade)

一.外观模式定义 为子系统中的一组接口提供一个一致的界面,使得此子系统更加容易使用. 二.书中python代码实现 1 class AModuleApi: 2 def testA(self): 3 pass 4 class AModuleImpl(AModuleApi): 5 def testA(self): 6 print "Now Call testA in AModule!" 7 class BModuleApi: 8 def testB(self): 9 pass 10 cla