文档章节

结构型模式之五:门面模式

奋斗到天明
 奋斗到天明
发布于 2015/08/27 16:44
字数 240
阅读 20
收藏 0
点赞 0
评论 0

门面模式隐藏了一个任务的复杂性,提供吧一个简单的接口,一个很好的例子是电脑的启动,当一个电脑启动,他涉及CPU,内存,硬盘等等,为了使他对用户简单,我们添加一个门面来包裹这个任务的复杂性,并提供一个简单的接口代替。

1、门面模式的类图

2、Java门面模式的例子

//the components of a computer
class CPU {
  public void processData() { }
}
 
class Memory {
  public void load() { }
}
 
class HardDrive {
  public void readdata() { }
}
 
/* Facade */
class Computer {
  private CPU cpu;
  private Memory memory;
  private HardDrive hardDrive;
 
  public Computer() {
    this.cpu = new CPU();
    this.memory = new Memory();
    this.hardDrive = new HardDrive();
  }
 
  public void run() {
    cpu.processData();
    memory.load();
    hardDrive.readdata();
  }
}
 
 
class User {
  public static void main(String[] args) {
    Computer computer = new Computer();
    computer.run();
  }
}

3、实际项目中的例子

在javax.faces.context中,ExternalContext内部使用ServletContext, HttpSession, HttpServletRequest, HttpServletResponse等等,他允许接口api自然地访问他们包含的应用变量。 

以上文章翻译自: http://www.programcreek.com/2013/02/java-design-pattern-facade/

© 著作权归作者所有

共有 人打赏支持
奋斗到天明
粉丝 18
博文 112
码字总数 82707
作品 0
昌平
程序员
PHP设计模式(二):结构模式

上一篇我们介绍了设计模式的特性并且详细讲解了4种创建型模式,创建型模式是负责如何产生对象实例的,现在我们继续来给大家介绍结构型模式。(我的分享里面有) 一、什么是结构型模式? 结构...

juhenj ⋅ 2014/05/15 ⋅ 1

面相对象的艺术|设计模式2(结构型)

“ 设计模式 ”是 “面向对象设计模式” 的简称,是软件开发人员在软件开发过程中面临的一般问题的解决方案。 主要用来应对 类 的变化。 “ 设计模式 ”又分为:创建型模式、结构型模式、行为...

大海画家 ⋅ 2017/11/07 ⋅ 0

php设计模式(三):结构模式

一、什么是结构型模式? 结构型模式是解析类和对象的内部结构和外部组合,通过优化程序结构解决模块之间的耦合问题。 二、结构型模式的种类: 适配器模式 桥接模式 装饰模式 组合模式 外观模...

peasant ⋅ 2016/05/26 ⋅ 0

PHP的23种设计模式--php_design_patterns

学习理解设计模式,记录PHP关于23种设计模式的简单Demo。 设计模式分为:创建型模式, 结构型模式,行为型模式等23种设计模式。 一、五种创建型模式如下: 工厂方法模式factorymethod 抽象工...

匿名 ⋅ 2016/04/13 ⋅ 1

剑指Offer——知识点储备-设计模式

剑指Offer——知识点储备-设计模式 设计模式 设计模式的六大原则 (1)单一职责原则(有且仅有一个原因引起类的变化); (2)里氏替换(任何父类出现的地方子类都可以替换); (3)依赖倒置...

sunhuaqiang1 ⋅ 2016/11/07 ⋅ 0

模式总结之结构型:代理模式 Vs 适配器模式 Vs 门面模式(外观模式)

三哥们都是结构型模式,长得又有点像,为了深刻区分,写文祭奠一下。 先上UML图 代理模式: 适配器模式: 门面模式(外观模式): 打了例子……呃……举个比方 代理模式: 水浒街,西门庆看上...

刀狂剑痴 ⋅ 2015/08/27 ⋅ 0

Android的设计模式-外观模式

前言 Android的设计模式系列文章介绍,欢迎关注,持续更新中: Android的设计模式-设计模式的六大原则 一句话总结23种设计模式则 创建型模式: Android的设计模式-单例模式 Android的设计模式...

四月葡萄 ⋅ 01/04 ⋅ 0

Java设计模式百例 - 门面模式

> 本文源码见:https://github.com/get-set/get-designpatterns/tree/master/facade 门面模式(Facade Pattern)用于隐藏系统的复杂性,并向客户端提供一些简化访问方法和对现有系统类方法的...

享学IT ⋅ 2017/12/05 ⋅ 0

创建型、结构型、行为型模式(1)

目的 创建型模式 Creational Pattern 结构型模式 Structural Patterns 行为型模式 Behavioral Pattern 概念 创建型模式,就是创建对象的模式,抽象了实例化的过程。它帮助一个系统独立于如何...

晨曦之光 ⋅ 2012/04/24 ⋅ 0

设计模式总结(二)

设计模式可分为三种:创建型设计模式,结构型设计模式和行为型设计模式。 一、创建型设计模式 在设计模式中,创建型设计模式处理对象创建过程的设计模式,它根据实际情况来决定具体怎样创建对...

邵鸿鑫 ⋅ 2014/05/02 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Thrift RPC实战(二) Thrift 网络服务模型

TServer类层次体系 TSimpleServer/TThreadPoolServer是阻塞服务模型 TNonblockingServer/THsHaServer/TThreadedSelectotServer是非阻塞服务模型(NIO) 1 TServer抽象类的定义 内部静态类Args的...

lemonLove ⋅ 8分钟前 ⋅ 0

vim命令用法

第五章 vim命令 vim和vi几乎是一样的,唯一的区别就是当编辑一个文本时,使用vi不会显示颜色,而使用vim会显示颜色。 vim有三个模式:一般模式,编辑模式,命令模式。 系统最小化安装时没有安...

弓正 ⋅ 10分钟前 ⋅ 0

MyBatis源码解读之配置

1. 目的 本文主要介绍MyBatis配置文件解析,通过源码解读mybatis-config.xml(官方默认命名)、Mapper.xml 与Java对象的映射。 2. MyBatis结构 查看大图 MyBatis结构图,原图实在太模糊了,所以...

无忌 ⋅ 13分钟前 ⋅ 0

Ignite的jdbc与网格的连接方式的查询性能对比

环境: 数据量100万 Ignite2.5 Windows10 8g jdbc方式连接 import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; i......

仔仔1993 ⋅ 28分钟前 ⋅ 0

收集自网络的wordpress 分页导航的代码教程(全网最全版)

wordpress 分页导航是用来切换文章的一个功能,添加了 wordpress 分页导航后,用户即可自由到达指定的页面数浏览分类文章,而这样的一个很简单功能却有很多朋友在用插件:WP-PageNavi,插件的...

Rhymo-Wu ⋅ 44分钟前 ⋅ 0

微服务 WildFly Swarm 入门

Hello World 就像前面章节中的其他框架一样,我们希望添加一些基本的 Hello-world 功能,然后在其上逐步添加更多的功能。让我们从在我们的项目中创建一个 HolaResources 开始。您可以使用您的...

woshixin ⋅ 51分钟前 ⋅ 0

Maven的安装和Eclipse的配置

1. 下载Maven 下载地址 2. 解压压缩包,放到自己习惯的硬盘中 此处我将其放到了 D:\Tools 目录下。 3. 配置环境变量 右键此电脑 -> 属性 -> 高级系统设置 -> 环境变量。 在系统变量中新建,变...

影狼 ⋅ 58分钟前 ⋅ 0

python pip使用国内镜像的方法

国内源 清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 华中理工大学:http://......

良言 ⋅ 59分钟前 ⋅ 0

对于url变化的spa应该如何使用微信jssdk

使用vue单页面碰上微信jssdk config验证失败的坑。第一次成功 之后切换页面全部失败,找到了解决方法,第一次验证成功后保存验证信息 切换页面时验证信息直接拿来用,加一个wx.error() 失败时...

孙冠峰 ⋅ 今天 ⋅ 0

Spring Cloud Gateway 一般集成

SCF发布,带来很多新东西,不过少了点教程,打开方式又和以前的不一样,比如这个SCG,压根就没有入门指导,所以这里写一个,以备后用。 一、集成 pom.xml <dependency> <groupI...

kut ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部