用途


外观模式 (Facade)
为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
外观模式是一种结构型模式
结构

aaarticlea/png;base64,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ePDg1157jf0R91Y7f/782LFjn3322aioKIOzONB64QS2npurk5aW1qtXL+79bPBYlJeXOzo6du/efc2aNS3N4mDnaL322muDBw8ODQ017UYxFtl6/vwZJycn/rOWLFnSr18/Jycn/vy0ls4vpvkI2tnZ2dnZsY8x+aw2tF4y4rS+qampukRqFocAAA1OSURBVLq6oaGBewezS95++20rKytra+suXbrwnxUdHW1tbd21a9cOHTocPXq0rq6OXU9JScngwYOtra07deq0aNEinTngaL1wBlvPzv3g9mFNTc2iRYs6derEHQv++7mlY/HPf/7T2tqancVRXV3Nn8XR0NCQn5/PztGKjo427RZx20Vx6+vq6mpqavjFqaurO3r0aIcOHbp27coeC51neXh4sOdX37598/PzGxoamJbPLz5cw9GH1j/BYOvLyspeffVV/jwcdkmXLl38/Pxu376dmJjIf1ZlZeXt27cvXLjQu3fvAQMGxMXFsetpaGgoKChoaRYHWi+cwdazcz+4fcifq8MeC/77uaVjce/evZZmcfDnaJn2ygB/uyhufVxcnM48nLi4uAEDBvTu3fvChQvssdB5VmlpKXt+dezYcdCgQewvYFs6v/jQen1o/RMEzsMxcv1369atW7duZfT27C+//PLRRx+xcwlamqWA1gskZB4O/zFCjsXDhw8/+ugjdl6H/rFITk5+8803e/bsmZCQUFpaatrN4W8Xxa3Xn4ejs591nrV27drk5GRGwPmVnJzMnzfFoPWGoPVPKCgo4OZsrG62Zs2a0NDQgoIC7r1YXV2tVqttbW0nT568evXq2bNnc+/F9PR0Pz+/1atXq1QqdqZHdnY2u+bQ0NA1a9asXr2anV2QmJjIvmhUVNTq1asnT56sUCi6du2qUqlWr15tcHZBm1HW+sTERHbOxmoePz+/Dz/8kDvD+Y9hjwX3fjZ4LNhj6unpyR4LW1tbtVpdXV3NMMx3332nc3RYUVFRpt0ualqfnp7+4YcfDho0iH+AvL29ExMT+cXJzs5esmQJt1fHjh3Lb31iYqK3tzd7fllbW/v4+BQUFBg8v7KzswMDA/mvpXMETQWtlwyJc6OysnL58uULeJYvX87+P/vu3bsXLFgQEhLCPjIkJGTBk9hf6B0/flxnif6a2fkhLa1nwYIFx48fN+FGUdZ6pvlY6Owxds/r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" alt="" />

图-外观模式结构图

Facade : 了解每个子系统类的功能,负责分发客户端的请求给各个子系统去处理。

class Class1 {

    public void op1() {

        System.out.println("方法1");

    }

}

class Class2 {

    public void op2() {

        System.out.println("方法2");

    }

}

class Class3 {

    public void op3() {

        System.out.println("方法3");

    }

}

Subsystem Classes : 实现子系统功能。在不感知 Facade 的情况下,处理 Facade 对象分配的工作,

class Facade {

    private Class1 one = new Class1();

    private Class2 two = new Class2();

    private Class3 three = new Class3();

    

    public void op1() {

        System.out.println("Facade op1()");

        one.op1();

    }

    

    public void op2() {

        System.out.println("Facade op2()");

        two.op2();

    }

    

    public void op3() {

        System.out.println("Facade op3()");

        three.op3();

    }

    

    public void Method() {

        System.out.println("Facade Method()");

        three.op3();

        two.op2();

        one.op1();

    }

}

测试代码

public class FacadePattern {

    public static void main(String[] args) {

        Facade facade = new Facade();

        facade.Method();

        

        facade.op1();

    }

}

运行结果

Facade Method()

方法3

方法2

方法1

Facade op1()

方法1
要点

1、外观模式为复杂子系统提供了一个简单接口,并不为子系统添加新的功能和行为。

2、外观模式实现了子系统与客户之间的松耦合关系。

3、外观模式没有封装子系统的类,只是提供了简单的接口。 如果应用需要,它并不限制客户使用子系统类。因此可以再系统易用性与通用性之间选择。

4、外观模式注重的是简化接口,它更多的时候是从架构的层次去看整个系统,而并非单个类的层次。

推荐

本文属于 JAVA设计模式系列

参考资料

《大话设计模式》

《HeadFirst设计模式》

JAVA 设计模式 外观模式的更多相关文章

  1. Java设计模式——外观模式

    JAVA 设计模式 外观模式 用途 外观模式 (Facade) 为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用. 外观模式是一种结构型模式. 结构

  2. 【设计模式】Java设计模式 - 外观模式

    Java设计模式 - 外观模式 不断学习才是王道 继续踏上学习之路,学之分享笔记 总有一天我也能像各位大佬一样 原创作品,更多关注我CSDN: 一个有梦有戏的人 准备将博客园.CSDN一起记录分享自己 ...

  3. java设计模式——外观模式(门面模式)

    一. 定义与类型 定义:门面模式,提供一个统一的接口,用来访问子系统中的一群接口,门面模式定义了一个高层接口,让子系统更容易使用 类型:结构性 二. 使用场景 子系统越来越复杂,增加外观模式提供简单调 ...

  4. Java设计模式---外观模式

    外观模式(Facade) 外观模式的意图是:为子系统提供一个接口,便于它的使用.   解释: 简单的说,外观模式就是封装多个上层应用需要的方法,使得上层调用变得简单,为上层提供简单的接口,是设计模式中 ...

  5. Java设计模式-外观模式(Facade)

    外观模式是为了解决类与类之家的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合度,该模式中没有涉及到接口 ...

  6. 菜鸟版JAVA设计模式—外观模式

    外观模式是一种比較easy理解的模式,作用非常easy.就是解耦合. 结构也是非常easy,一个外观类.这个外观类持有非常多的业务类. 再由客户类去调用这个外观类去实现一些列的业务操作... 这个模式 ...

  7. java设计模式----外观模式(门面模式)

    外观模式主要应用场景在于为复杂的子系统提供一个简单的接口,提高子系统的独立性. 创建DrawerOne类: package facade; public class DrawerOne { publi ...

  8. Java设计模式——组合模式

    JAVA 设计模式 组合模式 用途 组合模式 (Component) 将对象组合成树形结构以表示“部分-整体”的层次结构.组合模式使得用户对单个对象和组合对象的使用具有唯一性. 组合模式是一种结构型模 ...

  9. java设计模式--单列模式

    java设计模式--单列模式 单列模式定义:确保一个类只有一个实例,并提供一个全局访问点. 下面是几种实现单列模式的Demo,每个Demo都有自己的优缺点: Demo1: /** * 单列模式需要满足 ...

随机推荐

  1. Service简介

    Service是在一段不定的时间运行在后台,不和用户交互应用组件.每个Service必须在manifest中 通过<service>来声明.可以通过contect.startservice ...

  2. 大数据存储:MongoDB实战指南——常见问题解答

    锁粒度与并发性能怎么样? 数据库的读写并发性能与锁的粒度息息相关,不管是读操作还是写操作开始运行时,都会请求相应的锁资源,如果请求不到,操作就会被阻塞.读操作请求的是读锁,能够与其它读操作共享,但是当 ...

  3. [ZigBee] 13、ZigBee基础阶段性回顾与加深理解——用定时器1产生PWM来控制LED亮度(七色灯)

    引言:PWM对于很多软件工程师可能又熟悉又陌生,以PWM调节LED亮度为例,其本质是在每个周期都偷工减料一些,整体表现出LED欠压亮度不同的效果.像大家看到的七色彩灯其原理也类似,只是用3路PWM分别 ...

  4. SharePoint—用REST方式访问列表

    REST的定义与作用 在SharePoint 2010中,基本上有如下几种数据访问方式: 服务器端对象模型 LINQ to SharePoint Web Service 客户端对象模型 ADO.NET ...

  5. 一则JVM memory leak解决的过程

    起因是我们的集群应用(3台机器)新版本测试过程中,一般的JVM内存占用 都在1G左右, 但在运行了一段时间后,慢慢升到了4G, 这是一个明显不正常的现象. 定位 过程: 1.先在该机器上按照步骤尝试重 ...

  6. 使用Vue.js时,对Chrome控制台的一点小心得

    之前对Chrome控制台的console.log()输出没太放心上,其实仔细研究后,对工作效率有显著的提示.看下面的五段代码: console.log(''); console.log(typeof ...

  7. show一下自己的文档编写功底

    以我为例,我绝对相信,“才华”和颜值成反比.这里我要秀一下我的文档编写能力.在我这十年的工作生涯里,的确有数不清的次数,我的同事或上司,对我设计和制作的文档表示称赞. 我曾记得,2010年我在好丽友— ...

  8. Java-接口练习1

    1.(1)编写一个接口ShapePara,要求: 接口中的方法: int getArea():获得图形的面积.int getCircumference():获得图形的周长 (2)编写一个圆类Circl ...

  9. EF架构~对AutoMapper实体映射的扩展

    回到目录 AutoMapper在之前我曾经介绍过,今天主要是把它作一下扩展,因为它的调用太麻烦了,呵呵,扩展之后,用着还可以,感觉.net3.5之后,有了扩展方法这个东西,在程序开发速度及表现力上都有 ...

  10. js里cookie操作

    原生js操作cookie 创建和存储 cookie 在这个例子中我们要创建一个存储访问者名字的 cookie.当访问者首次访问网站时,他们会被要求填写姓名.名字会存储于 cookie 中.当访问者再次 ...