用途


外观模式 (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. Git 的origin和master分析

    首先要明确一点,对git的操作是围绕3个大的步骤来展开的(其实几乎所有的SCM都是这样) 1.     从git取数据(git clone) 2.     改动代码 3.     将改动传回git(g ...

  2. java HashMap那点事

    集合类的整体架构 比较重要的集合类图如下:   有序否 允许元素重复否 Collection 否 是 List 是 是 Set AbstractSet 否 否 HashSet TreeSet 是(用二 ...

  3. 在ASP.NET WebAPI 中使用缓存【Redis】

    初步看了下CacheCow与OutputCache,感觉还是CacheOutput比较符合自己的要求,使用也很简单 PM>Install-Package Strathweb.CacheOutpu ...

  4. 即时通信系统中如何实现:全局系统通知,并与Web后台集成?【低调赠送:QQ高仿版GGTalk 5.1 最新源码】

    像QQ这样的即时通信软件,时不时就会从桌面的右下角弹出一个小窗口,或是显示一个广告.或是一个新闻.或是一个公告等.在这里,我们将其统称为“全局系统通知”.很多使用GGTalk的朋友都建议我加上一个类似 ...

  5. comet在asp.net中的实现

    网上有关“服务器推送”的介绍非常多,其中一种实现方式就是采用comet技术,在浏览器与服务端之间建立一个http协议的“长连接”,所谓“长连接”,就是指浏览器到服务端的http请求不会马上得到服务端的 ...

  6. 一天一小段js代码(no.2)

    (一)可以用下面js代码来检测弹出窗口是否被屏蔽: var blocked = false ; try { /*window.open()方法接受4个参数window.open(要加载的url,窗口目 ...

  7. python _、__和__xx__的区别

    python _.__和__xx__的区别 本文为译文,版权属于原作者,在此翻译为中文分享给大家.英文原文地址:Difference between _, __ and __xx__ in Pytho ...

  8. js模版引擎handlebars.js实用教程——结束语

    返回目录 有了这些功能,[ajax+json+Handlebars]替代[vo+el表达式]不成问题,新时代的曙光已经来临,最佳解决方案在此,您还等什么? 教程到此结束...祝读者学习愉快... 小菜 ...

  9. IOS 公共类-MyDateUtil 日期处理Util

    IOS 公共类-MyDateUtil 日期处理Util 此为处理日期的公共类.适用IOS6+ .h文件: #import <Foundation/Foundation.h> //适用 IO ...

  10. java程序 启动时参数

      iEMP34:/opt/version/lktest/b030/jre/jre_linux/bin # ./java -classpath . SysInfo Exception in threa ...