用途


外观模式 (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. 手机浏览器,微信中播放amr录音

    由于微信公众号开发中,临时素材只有三天的有效期,但是客户要求所有录音永久保存,永久素材数量又有限制,故只能把录音保存到服务器上.但是存到服务器上有一个问题,手机微信中无法直接播放amr录音.无意中发现 ...

  2. dubbo分布式rpc框架用法

    dubbo是阿里巴巴开源的分布式服务框架,致力于提供高性能和透明化的rpc远程服务调用方案,以及soa服务治理方案,如果没有分布式需求,是不需要dubbo的,分布式环境dubbo的使用架构官方给出了一 ...

  3. C# Retry重试操作解决方案(附源码)

    一.前言 (1)对于Thread的Abort方法,如果线程当前正在执行的是一段非托管代码,那么CLR就不会抛出ThreadAbortException,只有当代码继续回到CLR中时,才会引发Threa ...

  4. 对InvokeAction简略分析了解验证失败为什么Action还会继续执行

    一.前言 有些同学使用AuthorizationFilter来进行用户是否登录验证,如果未登录就跳到登录页. 很简单的一个场景,但是有些同学会发现虽然验证失败了,但是整个Action还会执行一遍. 于 ...

  5. 你眼中的async/await是什么样的?

    又到了周末的code review环节,这次code review发现了一个对async/await的理解问题.让我们直奔主题: var foodsSearch = new FoodSearchSer ...

  6. Linux文件系统应用---系统数据备份和迁移(用户角度)

    1   前言 首先承诺:对于从Windows系统迁移过来的用户,困扰大家的  “Linux系统下是否可以把系统文件和用户文件分开到C盘和D盘中” 的问题也可以得到完满解决. 之前的文章对Linux的文 ...

  7. 基于java的设计模式入门(1)——为什么要学习设计模式

    大年初一,楼主在这里给大家拜年,祝大家码上升职加薪,码上有对象结婚,码上有车有房,幸福安康. 过完年,回学校注册报道之后,大概就要回深圳到公司开始实习了.提高自己,无非就有两种方式,一是看书学习,二是 ...

  8. WKInterfaceImage 无法更新图片的问题

    最近涉及到AppleWatch的相关项目,但有个奇怪问题无法解决,而且无法理解: 根据不同的用户操作,需要修改播放器的专辑图片. 不知道跟我的项目需求是不是有关系:我需要轮询共享空间,以拿取同步数据, ...

  9. 扩展GridView控件——为内容项添加拖放及分组功能

    引言 相信大家对GridView都不陌生,是非常有用的控件,用于平铺有序的显示多个内容项.打开任何WinRT应用或者是微软合作商的网站,都会在APP中发现GridView的使用.“Tiles”提供了一 ...

  10. 每天一个linux命令(59):rcp命令

    rcp代表“remote file copy”(远程文件拷贝).该命令用于在计算机之间拷贝文件.rcp命令有两种格式.第一种格式用于文件到文件的拷贝:第二种格式用于把文件或目录拷贝到另一个目录中. 1 ...