Java设计模式-外观模式(Facade)
外观模式是为了解决类与类之家的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合度,该模式中没有涉及到接口,看下类图:(我们以一个计算机的启动过程为例)
实现类:
public class CPU { public void startup(){ System.out.println("cpu startup!"); } public void shutdown(){ System.out.println("cpu shutdown!"); } }
public class Memory { public void startup(){ System.out.println("memory startup!"); } public void shutdown(){ System.out.println("memory shutdown!"); } }
public class Disk { public void startup(){ System.out.println("disk startup!"); } public void shutdown(){ System.out.println("disk shutdown!"); } }
public class Computer { private CPU cpu; private Memory memory; private Disk disk; public Computer(){ cpu = new CPU(); memory = new Memory(); disk = new Disk(); } public void startup(){ System.out.println("start the computer!"); cpu.startup(); memory.startup(); disk.startup(); System.out.println("start computer finished!"); } public void shutdown(){ System.out.println("begin to close the computer!"); cpu.shutdown(); memory.shutdown(); disk.shutdown(); System.out.println("computer closed!"); } }
public class User { public static void main(String[] args) { Computer computer = new Computer(); computer.startup(); computer.shutdown(); } }
输出:
start the computer! cpu startup! memory startup! disk startup! start computer finished! begin to close the computer! cpu shutdown! memory shutdown! disk shutdown! computer closed!
如果我们没有Computer类,那么,CPU、Memory、Disk他们之间将会相互持有实例,产生关系,这样会造成严重的依赖,修改一个类,可能会带来其他类的修改,这不是我们想要看到的,有了Computer类,他们之间的关系被放在了Computer类里,这样就起到了解耦的作用,这,就是外观模式!
转载于:https://www.cnblogs.com/hwaggLee/p/4508553.html
Java设计模式-外观模式(Facade)相关推荐
- 设计模式:外观模式(Facade)
外观模式(Facade)也叫过程模式, 外观模式为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用. 外观模式通过定义一个一致的接口,用以屏蔽内部子系 ...
- Java设计模式——外观模式【Facade Pattern】
一.引言 23种设计模式大概分为三大类: 5种(创建型模式):工厂方法模式.抽象工厂模式.单例模式.原型模式.建造者模式. 7种(结构型模式):适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组 ...
- Java 设计模式——外观模式
概述 今天要说的外观模式是一个相对简单的设计模式,而且在日常的开发中,可能你也会时常使用它,只是你可能并未想过这是一个设计模式.本文会从一些实例着手,来对本文要说明的外观模式进行尽可能全面的讲解.希望 ...
- Java设计模式--外观模式
1 Facade Pattern 外观模式 目的:隐藏系统的复杂性,并对外提供了一个可以访问的接口,不必关心实现的细节: 实现:在客户端和复杂系统之间再加一层,这一层将调用顺序.依赖关系等处理好. 1 ...
- Java设计模式---外观模式
外观模式(Facade) 外观模式的意图是:为子系统提供一个接口,便于它的使用. 解释: 简单的说,外观模式就是封装多个上层应用需要的方法,使得上层调用变得简单,为上层提供简单的接口,是设计模式中一种 ...
- Java设计模式-外观模式
我又来了,继Java设计模式之桥接模式后,现在来到了外观模式啦,外观模式又称为门面模式啦
- 趣谈设计模式 | 外观模式(Facade):为子系统提供高粒度接口
文章目录 案例:自动驾驶飞机 外观模式 总结 完整代码与文档 案例:自动驾驶飞机 随着自动驾驶汽车的大卖,特X拉开始把目标转向飞行领域,打算开发出一款能够完全自动行驶的飞机,系统初步的设计如下 我们将 ...
- 设计模式.外观模式Facade
定义 外观模式,一般用在子系统与访问之间,用于对访问屏蔽复杂的子系统调用,采用耳目一新的外观类提供的简单的调用方法,具体的实现由外观类去子系统调用. 外观模式是一种中间件类型的模式,使用外观模式之后子 ...
- Java设计模式----------外观模式
1.介绍 外观模式是一种结构型设计模式.在外观模式中,外观类中提供一个或者一组对外的接口.客户端对于复杂系统的访问是通过外观类的接口进行的,从而解除了客户端与复杂系统之间的耦合,隐藏了复杂系统内部的逻 ...
最新文章
- SAP_常用业务数据表
- 1689: 营救小明(bfs+priority_queue逆向思维)
- 深入浅出讲解MSE Nacos 2.0新特性
- SAP云平台,区块链,超级账本和智能合约
- 差分隐私中随机响应的抛硬币问题(LDP)
- java 不能同时修改一条记录_【免费毕设】JAVA+SQL离散数学题库管理系统(源代码+论文+外文翻译)...
- mysql教程查询语句_最全的mysql查询语句整理
- Microsoft强大团队(源代码)管理工具--TFS2010 与vs结合
- 1.1 文本表示——离散形式表示
- linux内核源码分析plat-form 分析
- JSONArray.fromObject(str)
- CMD 命令 复制多级子目录特定文件
- 中国省市县信息JS文件(省--市--县)
- HTML 制作钓鱼网站实现跳转(简篇)
- VMware 虚拟机安装 xp 蓝屏解决方法
- android 11.0 12.0Camera2 去掉后置摄像头 仅支持前置摄像头功能
- 2008 r2 server sql 中文版补丁_Microsoft SQL Server 2008 r2 sp2补丁 64位 官方免费版
- 2021年起重机司机(限桥式起重机)考试题库及起重机司机(限桥式起重机)考试试卷
- python办公自动化(6)——读取word文档
- create view 和 create or replace view的区别
热门文章
- Android 用户界面---样式和主题(Styles and Themes)(二)
- SharePoint GridView的使用2——DataSourceView的使用
- cAdvisor+InfluxDB+Grafana 监控Docker
- 在 Intellij IDEA 里使用 OpenJFX (JavaFX)
- 使用ifconfig取出网卡eth0的ip地址
- 【VBA编程】10.自定义集合
- 【转载】Direct3D基础知识
- ORA-00119错误的解决。
- Android自定义view之圆形进度条
- Rails不用localhost访问的时候很慢