场景:当外界某个对象与某个系统内的多个组件都要进行交互时,这个系统可以对外提供一个统一的接口,与外界这个对象对接,这样可以对外隐藏系统内部的复杂性,接口内部调用各个组件功能。

实现:定义一个Facade, 有多个组件就定义多个MemberA,MemberB等等。

例子:

package com.example.demo.designpattern.facade;/*** 某系统内组件A*/
public class MemberA {public void work() {System.out.println("MemberA work");}public void rest() {System.out.println("MemberA rest");}
}
/*** 某系统内组件B*/
public class MemberB {public void work() {System.out.println("MemberB work");}public void rest() {System.out.println("MemberB rest");}
}

定义门面类:

public class Facade {private MemberA memberA;private MemberB memberB;public Facade() {memberA = new MemberA();memberB = new MemberB();}public void work() {memberA.work();memberB.work();}public void rest() {memberA.rest();memberB.rest();}
}

外部调用:

public class Test {public static void main(String[] args) {Facade facade = new Facade();facade.work();facade.rest();}
}

Java 设计模式之Facade门面模式相关推荐

  1. Java设计模式-结构型-门面模式

    目录 前言 示例 前言 门面模式(也叫外观模式,Facade Pattern)在许多源码中有使用,比如 slf4j 就可以理解为是门面模式的应用.这是一个简单的设计模式,我们直接上代码再说吧. 示例 ...

  2. 门面设计模式php,学习php设计模式 php实现门面模式(Facade)

    这篇文章主要介绍了php设计模式中的门面模式,使用php实现门面模式,感兴趣的小伙伴们可以参考一下 一.意图 为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层次的接口,使得子系统 ...

  3. Java设计模式(装饰者模式-组合模式-外观模式-享元模式)

    Java设计模式Ⅳ 1.装饰者模式 1.1 装饰者模式概述 1.2 代码理解 2.组合模式 2.1 组合模式概述 2.2 代码理解 3.外观模式 3.1 外观模式概述 3.2 代码理解 4.享元模式 ...

  4. java设计模式4--建造者模式(Builder)

    本文地址:http://www.cnblogs.com/archimedes/p/java-builder-pattern.html,转载请注明源地址. 建造者模式 将一个复杂对象的构建与它的表示分离 ...

  5. Java设计模式-观察者模式(订阅发布模式)

    Java设计模式-观察者模式(订阅发布模式) 一起来看 会了就当复习丫,不会来一起来看看吧. 很喜欢一句话:"八小时内谋生活,八小时外谋发展". 如果你也喜欢,让我们一起坚持吧!! ...

  6. 适配接口 java_【Java 设计模式】接口型模式--Adapter(适配器)模式

    简介:[Java设计模式]接口型模式–Adapter(适配器)模式Adapter模式的宗旨就是:向客户提供接口,并使用现有的类所提供的服务,以满足客户的需求. 或者说,现在有classA的方法满足客户 ...

  7. java设计模式2-观察者模式

    java设计模式2-观察者模式 什么是观察者模式? 何谓观察者模式?观察者模式定义了对象之间的一对多依赖关系,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并且自动更新. 在这里,发生改变 ...

  8. Java设计模式之中介者模式(UML类图分析+代码详解)

    大家好,我是一名在算法之路上不断前进的小小程序猿!体会算法之美,领悟算法的智慧~ 希望各位博友走过路过可以给我点个免费的赞,你们的支持是我不断前进的动力!! 加油吧!未来可期!! 本文将介绍java设 ...

  9. Java设计模式之享元模式(UML类图分析+代码详解)

    大家好,我是一名在算法之路上不断前进的小小程序猿!体会算法之美,领悟算法的智慧~ 希望各位博友走过路过可以给我点个免费的赞,你们的支持是我不断前进的动力!! 加油吧!未来可期!! 本文将介绍java设 ...

最新文章

  1. Java中的JDBC教程
  2. 北乐博客装饰分享CSS+HTML+js
  3. OpenCV学习——绘制图像灰色直方图
  4. Python程序的采样分析神器py-spy模块实践
  5. Atitit spring单元测试 注解 获取服务名 Spring文件单独放在一个文件夹,去掉dubbo配置,方便测试 里面包含的mybatis 找不到,只好设置成相对于class绝对路径可以了
  6. VB程序设计练习题(一)
  7. 怎么查看腾讯视频下载的视频保存在哪个文件夹
  8. 22岁阻止席卷网络的病毒,却因开发恶意软件被捕,这是传奇黑客马库斯的故事...
  9. Shapley Values
  10. 视频音频剪辑合并软件 免费强大 LosslessCut
  11. ShardingJdbc SQLFeatureNotSupportedException: isValid
  12. 编程课程_您可以从今天开始的300项免费在线编程课程
  13. 好的中层管理者要兼顾公司和员工的利益
  14. 006输出9行内容,第1行输出1,第2行输出12,第3行输出123,以此类推,第9行输出123456789。
  15. ENC28J60 简介
  16. hcsr04超声波模块在51单片机中的应用
  17. java 打印 日历 详细 注解_java 打印日历
  18. TCP的三次握手流程图
  19. JS 通过百度地图获取详细地址及经纬度
  20. MTK平台LED配置

热门文章

  1. 【英语学习】【WOTD】yen 释义/词源/示例
  2. Intel Core Enhanced Core架构/微架构/流水线 (15) - 先进智能缓存
  3. 用mendeley在word中插入文献_Mendeley教程-参考文献引用(论文撰写必备!)
  4. 基于微型计算机系统的实时时钟设计,基于51单片机的实时时钟设计报告.doc
  5. Redefining the shading languages ecosystem with SPIR-V
  6. jieba分词,构建词典
  7. 前端技术演进(六):前端项目与技术实践
  8. Linux下安装配置vsftpd
  9. 【SDK】Memory read error at 0xF8007080
  10. 基于深度学习的图像风格转换