Java 设计模式之Facade门面模式
场景:当外界某个对象与某个系统内的多个组件都要进行交互时,这个系统可以对外提供一个统一的接口,与外界这个对象对接,这样可以对外隐藏系统内部的复杂性,接口内部调用各个组件功能。
实现:定义一个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门面模式相关推荐
- Java设计模式-结构型-门面模式
目录 前言 示例 前言 门面模式(也叫外观模式,Facade Pattern)在许多源码中有使用,比如 slf4j 就可以理解为是门面模式的应用.这是一个简单的设计模式,我们直接上代码再说吧. 示例 ...
- 门面设计模式php,学习php设计模式 php实现门面模式(Facade)
这篇文章主要介绍了php设计模式中的门面模式,使用php实现门面模式,感兴趣的小伙伴们可以参考一下 一.意图 为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层次的接口,使得子系统 ...
- Java设计模式(装饰者模式-组合模式-外观模式-享元模式)
Java设计模式Ⅳ 1.装饰者模式 1.1 装饰者模式概述 1.2 代码理解 2.组合模式 2.1 组合模式概述 2.2 代码理解 3.外观模式 3.1 外观模式概述 3.2 代码理解 4.享元模式 ...
- java设计模式4--建造者模式(Builder)
本文地址:http://www.cnblogs.com/archimedes/p/java-builder-pattern.html,转载请注明源地址. 建造者模式 将一个复杂对象的构建与它的表示分离 ...
- Java设计模式-观察者模式(订阅发布模式)
Java设计模式-观察者模式(订阅发布模式) 一起来看 会了就当复习丫,不会来一起来看看吧. 很喜欢一句话:"八小时内谋生活,八小时外谋发展". 如果你也喜欢,让我们一起坚持吧!! ...
- 适配接口 java_【Java 设计模式】接口型模式--Adapter(适配器)模式
简介:[Java设计模式]接口型模式–Adapter(适配器)模式Adapter模式的宗旨就是:向客户提供接口,并使用现有的类所提供的服务,以满足客户的需求. 或者说,现在有classA的方法满足客户 ...
- java设计模式2-观察者模式
java设计模式2-观察者模式 什么是观察者模式? 何谓观察者模式?观察者模式定义了对象之间的一对多依赖关系,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并且自动更新. 在这里,发生改变 ...
- Java设计模式之中介者模式(UML类图分析+代码详解)
大家好,我是一名在算法之路上不断前进的小小程序猿!体会算法之美,领悟算法的智慧~ 希望各位博友走过路过可以给我点个免费的赞,你们的支持是我不断前进的动力!! 加油吧!未来可期!! 本文将介绍java设 ...
- Java设计模式之享元模式(UML类图分析+代码详解)
大家好,我是一名在算法之路上不断前进的小小程序猿!体会算法之美,领悟算法的智慧~ 希望各位博友走过路过可以给我点个免费的赞,你们的支持是我不断前进的动力!! 加油吧!未来可期!! 本文将介绍java设 ...
最新文章
- Java中的JDBC教程
- 北乐博客装饰分享CSS+HTML+js
- OpenCV学习——绘制图像灰色直方图
- Python程序的采样分析神器py-spy模块实践
- Atitit spring单元测试 注解 获取服务名 Spring文件单独放在一个文件夹,去掉dubbo配置,方便测试 里面包含的mybatis 找不到,只好设置成相对于class绝对路径可以了
- VB程序设计练习题(一)
- 怎么查看腾讯视频下载的视频保存在哪个文件夹
- 22岁阻止席卷网络的病毒,却因开发恶意软件被捕,这是传奇黑客马库斯的故事...
- Shapley Values
- 视频音频剪辑合并软件 免费强大 LosslessCut
- ShardingJdbc SQLFeatureNotSupportedException: isValid
- 编程课程_您可以从今天开始的300项免费在线编程课程
- 好的中层管理者要兼顾公司和员工的利益
- 006输出9行内容,第1行输出1,第2行输出12,第3行输出123,以此类推,第9行输出123456789。
- ENC28J60 简介
- hcsr04超声波模块在51单片机中的应用
- java 打印 日历 详细 注解_java 打印日历
- TCP的三次握手流程图
- JS 通过百度地图获取详细地址及经纬度
- MTK平台LED配置
热门文章
- 【英语学习】【WOTD】yen 释义/词源/示例
- Intel Core Enhanced Core架构/微架构/流水线 (15) - 先进智能缓存
- 用mendeley在word中插入文献_Mendeley教程-参考文献引用(论文撰写必备!)
- 基于微型计算机系统的实时时钟设计,基于51单片机的实时时钟设计报告.doc
- Redefining the shading languages ecosystem with SPIR-V
- jieba分词,构建词典
- 前端技术演进(六):前端项目与技术实践
- Linux下安装配置vsftpd
- 【SDK】Memory read error at 0xF8007080
- 基于深度学习的图像风格转换