定义:提供了一个统一接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用
最少知识原则:只和你的密友谈话。
解释:不要让太多的类耦合在一起,免得修改系统中一部分,会影响到其它部分。如果许多类之间相互依赖,那么这个系统就会变得易碎。
例子:
用户在键盘上点击开机键,然后加载CPU,内存,硬盘驱动等信息,但是,客户只点了开机键,其它的执行内容对于客户而言是透明的。流程图如下:
代码:
1. CPU类
/** * * @Description: * CPU类 * @author king * @version 1.0 */ public class Cpu { public void execute(){ System.out.println("CPU正在启动....."); } }
2. 内存类
package com.myplay.facade; /** * * @Description: 内存类 * @author king * @version 1.0 */ public class Memeory { public void execute() { System.out.println("内存正在启动....."); } }
3. 硬盘驱动类
/** * * @Description: * 硬盘驱动类 * @author king * @version 1.0 */ public class HardDriver { //执行的方法 public void execute() { System.out.println("硬盘驱动正在加载....."); } }
4. 键盘类
/** * * @Description: * 键盘类 * @author king * @version 1.0 */ public class KeyBorad { public void clickButton(String command){ if("start".equals(command)){ new Cpu().execute(); new Memeory().execute(); new HardDriver().execute(); } } }
5.客户类
/** * * @Description: * 客户类 * @author king * @version 1.0 */ public class Client { private KeyBorad keyBorad = new KeyBorad(); public void start(){ keyBorad.clickButton("start"); } }
6. 运行类:
/** * * @Description: * 运行类 * @author king * @version 1.0 */ public class Run { public static void main(String[] args) { Client client = new Client(); client.start(); } }
7.运行结果:
CPU正在启动.....
内存正在启动.....
硬盘驱动正在加载.....
以上是我对外观模式的理解。主要就是类的封装。
另,推广一下上班菜鸟技术群:207974203
相关推荐
大话设计模式之外观模式 经典代码 C#类
设计模式通常分为三大类:创建型模式(如工厂模式、抽象工厂模式、单例模式、建造者模式和原型模式)、结构型模式(如代理模式、装饰器模式、适配器模式、桥接模式、组合模式、外观模式和享元模式)和行为型模式(如...
**外观模式(Facade Pattern)**是一种结构型设计模式,它为复杂的系统或子系统提供一个简单的接口,使得客户端可以不关心内部的复杂性,只通过这个接口与子系统进行交互。这种模式降低了系统的复杂度,提高了代码的...
设计模式_源代码大全.zip 包括:1.简单工厂模式 2.策略模式 3.装饰模式 4.代理模式 5.工厂方法模式 6.原型模式 7.模板方法模型 8.外观模式 9.建造者模式 10.观察者模式 11.抽象工厂模式 12.状态模式 13.适配器模式 ...
《Java设计模式之禅》是一本深入浅出讲解设计模式的书籍,书中不仅包含23种经典设计模式的案例,还详细介绍了设计模式背后的思想和原则,适合初学者以及对设计模式有一定了解的程序员阅读。本书旨在帮助读者理解如何...
30.设计模式之外观模式 31.设计模式之代理模式 32.设计模式之观察者模式 33.设计模式之策略模式 34.设计模式之命令模式 35.设计模式之迭代器模式 36.设计模式之中介者模式 37.设计模式之享元模式 38.设计模式之职责...
外观模式(Facade Pattern)是设计模式中的一种结构型模式,它的主要目的是为了解耦系统,提供一个统一的入口,使得客户端可以更容易地使用复杂的子系统。在Java中,外观模式通常用于简化对复杂系统的访问,它创建了...
外观模式(Facade Pattern) 11. 享元模式(Flyweight Pattern) 12. 代理模式(Proxy Pattern) 行为型: 13. 模板方法(Template Method) 14. 命令模式(Command Pattern) 15. 迭代器模式(Iterator Pattern) 16. 观察者...
设计模式主要分为三大类: 1.创建型模式:工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式。 2.结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。 4.行为型模式:...
10. 外观模式(Facade Pattern):为子系统中的一组接口提供一个一致的界面,定义了一个高层接口,使得子系统更加易于使用。 11. 享元模式(Flyweight Pattern):使用共享技术来最小化对象的存储空间,避免大量相同...
Head.First.设计模式.中文版 1 欢迎来到设计模式世界:设计模式入门 模拟鸭子应用 Joe想到继承 利用接口如何? 软件开发的不变真理 ...7 适配器模式与外观模式:随遇而安 8 模板方法模式:封装算法
**外观模式(Facade Pattern)**是软件工程中一种常用的设计模式,它为复杂的子系统提供了一个简单的接口,使得客户端代码可以更容易地与这些子系统交互。在C#中,外观模式同样被广泛应用,以降低系统的复杂性,提高...
- 外观模式 - 观察者模式 - 模板方法模式 - 迭代器模式 - 代理模式 - 适配器模式 2. 设计模式的基本要素: - 名字 - 意图 - 问题 - 解决方案 - 参与者与协作者 - 实现 - 一般性构造 3. 设计模式的...
**外观(Facade)模式**是软件工程中一种常用的设计模式,属于结构型模式...理解和思考外观模式.avi"这两个视频文件,你可以更深入地理解外观模式的概念,学习如何在实际项目中应用它,以及它在解决复杂问题时的优势。
"设计模式之美——教你写出高质量代码"这个主题旨在帮助开发者更好地理解和应用设计模式,从而提升代码的质量和可维护性。设计模式不仅对面试有所帮助,也是职场发展中的必备技能,无论你使用哪种开发语言。 设计...
10. 外观模式:外观模式为复杂的子系统提供了一个简单的接口,简化了客户端代码。 11. 享元模式:享元模式通过共享技术有效地支持大量细粒度的对象,减少内存消耗。 12. 代理模式:代理模式为其他对象提供一种代理...
10. 外观模式:提供一个简单的接口,用于与复杂的子系统交互。它简化了客户端代码,隐藏了子系统的复杂性。 11. 享元模式:运用共享技术,有效地支持大量细粒度的对象。在PHP中,它通常用于内存敏感的场景,如大量...
适合Java设计模式期末考试选择题复习,形式如下: 10.(单选题)Facade(外观)模式的意图是 正确答案: A A.希望简化现有系统的使用方法,你需要定义自己的接口 B.将一个无法控制的现有对象与一个特定借口相匹配。 C....
在软件设计领域,设计模式是一种经过时间和实践验证的解决方案,用于解决常见的...这个"设计模式之适配器模式与外观模式demo"资源为学习和实践这两种模式提供了宝贵的实例,对于提升编程技能和设计思维具有积极意义。
1. 工厂模式:这是最基础的设计模式之一,用于创建对象,它提供了一种封装对象创建过程的方法,使得具体创建哪个对象的决定可以在运行时做出。在Java中,抽象工厂模式可以用来创建一系列相关的对象。 2. 单例模式:...