外观模式(Facade)

外观模式的意图是:为子系统提供一个接口,便于它的使用。


解释:

简单的说,外观模式就是封装多个上层应用需要的方法,使得上层调用变得简单,为上层提供简单的接口,是设计模式中一种比较简单的设计思想,但是,也是最常用的一种设计模式。


举例:

当你想吃橘子的时候,你需要做那几件事呢?

1:去买橘子

2:剥橘子

3:吃橘子

这样去一步一步的调用各个方法是不是觉得很麻烦呢?所以,我们需要做的工作就是简化这些步骤,把它封装在一个方法中实现。


实现:

下面给出实现代码的UML图。

下面给出源代码:

1.oranger

package com.brucezhang.facade;public class oranger {public void eat() {System.out.println("eat oranger !");}public void buy() {System.out.println("buy oranger !");}public void wash() {System.out.println("wash oranger !");}
}

2.my_oranger

package com.brucezhang.facade;public class my_oranger {private oranger oranger;public my_oranger(oranger oranger){this.oranger = oranger;}public void go_oranger() {oranger.buy();oranger.wash();oranger.eat();}
}

3.people

package com.brucezhang.facade;public class people {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubmy_oranger myOranger = new my_oranger(new oranger());myOranger.go_oranger();}}

由代码中我们可以看出,我们想吃橘子的时候只需要调用 go_oranger() 方法即可。

下面是运行的结果:

buy oranger !
wash oranger !
eat oranger !

Java设计模式---外观模式相关推荐

  1. Java 设计模式——外观模式

    概述 今天要说的外观模式是一个相对简单的设计模式,而且在日常的开发中,可能你也会时常使用它,只是你可能并未想过这是一个设计模式.本文会从一些实例着手,来对本文要说明的外观模式进行尽可能全面的讲解.希望 ...

  2. Java设计模式-外观模式

    我又来了,继Java设计模式之桥接模式后,现在来到了外观模式啦,外观模式又称为门面模式啦

  3. Java设计模式--外观模式

    1 Facade Pattern 外观模式 目的:隐藏系统的复杂性,并对外提供了一个可以访问的接口,不必关心实现的细节: 实现:在客户端和复杂系统之间再加一层,这一层将调用顺序.依赖关系等处理好. 1 ...

  4. Java设计模式——外观模式【Facade Pattern】

    一.引言 23种设计模式大概分为三大类: 5种(创建型模式):工厂方法模式.抽象工厂模式.单例模式.原型模式.建造者模式. 7种(结构型模式):适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组 ...

  5. Java设计模式----------外观模式

    1.介绍 外观模式是一种结构型设计模式.在外观模式中,外观类中提供一个或者一组对外的接口.客户端对于复杂系统的访问是通过外观类的接口进行的,从而解除了客户端与复杂系统之间的耦合,隐藏了复杂系统内部的逻 ...

  6. Java设计模式-外观模式(Facade)

    外观模式是为了解决类与类之家的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合度,该模式中没有涉及到接口 ...

  7. java设计模式 订阅模式_Java中的外观设计模式

    java设计模式 订阅模式 立面是指建筑物的外观. 当穿过街道时,我们所看到的只是建筑物的外观. 该工作面抽象了建筑物的所有复杂实现细节. 同样, 外观设计模式旨在为子系统中的一组接口提供统一的接口. ...

  8. java设计模式工厂模式_Java中的外观设计模式

    java设计模式工厂模式 Facade Design Pattern is one of the Structural design patterns (such as Adapter pattern ...

  9. Java设计模式 -11- 外观模式(Facade模式)

    Java设计模式 -11- 外观模式(Facade模式) 前言 外观模式的定义与特点 优点: 缺点: 外观模式的结构与实现 1. 模式的结构 2. 模式的实现 外观模式的应用实例 外观模式的应用场景 ...

最新文章

  1. WinCE中串口驱动及接口函数介绍(转载)
  2. 利用Certbot工具快速给网站部署Let's Encrypt免费SSL证书
  3. simantaneous AJAX call triggered for Kyma plugin
  4. listview嵌套gridview
  5. 使用GDAL工具对FY3系列卫星数据进行校正
  6. python能自学成功吗-想自学Python,如何才能坚持下来?
  7. IIS7 上部署MVC3,执行错误:Could not load type 'System.ServiceModel.Activation.HttpModule'
  8. Web爬虫|入门教程之爬虫简介
  9. 异常处理(二)---------Field * in * required a bean of type '*' that could not be found.
  10. 【论文写作】汽车销售管理系统的设计与开发引言参考
  11. python if else语句例子,python 中if else 语句的作用及示例代码
  12. 青龙面板----今日头条脚本修复版
  13. python 排名函数_分数排名(Python),成绩,排序,python
  14. hostent实例详解
  15. 树叶叶脉的提取及描述
  16. 关于ECharts怎么隐藏掉坐标轴
  17. MAX-SUM算法信息传递规则的优化
  18. (React入门)ref
  19. 向量检索(一)Faiss 在工业界的应用和常见问题解决
  20. Linux嵌入式开发——vim编辑器

热门文章

  1. centos下ftp接受/发送文件
  2. SNF快速开发平台MVC-EasyQuery-拖拽生成SQL脚本
  3. asp.net获取ip
  4. 谈谈Koa 中的next
  5. 2018年Github最受欢迎机器学习语言Python稳坐冠军,numpy、scipy是最受欢迎软件包...
  6. 两个函数彻底理解Lua中的闭包
  7. IdentityServer4 使用OpenID Connect添加用户身份验证
  8. Flex/Flash Builder里实用但被忽略的编译参数
  9. Haproxy+keepalived高可用代理服务
  10. MasterPage,Page 2者之间事件的执行顺序