`
wangkechao.dream
  • 浏览: 46012 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
352630cf-f670-3416-b946-55dec5cd787c
设计模式
浏览量:30056
社区版块
存档分类
最新评论

15.设计模式之外观模式

阅读更多

定义:提供了一个统一接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用

 

最少知识原则:只和你的密友谈话。

 解释:不要让太多的类耦合在一起,免得修改系统中一部分,会影响到其它部分。如果许多类之间相互依赖,那么这个系统就会变得易碎。

 

例子:

            用户在键盘上点击开机键,然后加载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

 


 

  • 大小: 32.4 KB
2
1
分享到:
评论

相关推荐

    大话设计模式之外观模式

    大话设计模式之外观模式 经典代码 C#类

    15.设计模式面试真题-31页.7z

    设计模式通常分为三大类:创建型模式(如工厂模式、抽象工厂模式、单例模式、建造者模式和原型模式)、结构型模式(如代理模式、装饰器模式、适配器模式、桥接模式、组合模式、外观模式和享元模式)和行为型模式(如...

    设计模式之外观模式案例代码

    **外观模式(Facade Pattern)**是一种结构型设计模式,它为复杂的系统或子系统提供一个简单的接口,使得客户端可以不关心内部的复杂性,只通过这个接口与子系统进行交互。这种模式降低了系统的复杂度,提高了代码的...

    设计模式_源代码大全.zip

    设计模式_源代码大全.zip 包括:1.简单工厂模式 2.策略模式 3.装饰模式 4.代理模式 5.工厂方法模式 6.原型模式 7.模板方法模型 8.外观模式 9.建造者模式 10.观察者模式 11.抽象工厂模式 12.状态模式 13.适配器模式 ...

    Java设计模式之禅

    《Java设计模式之禅》是一本深入浅出讲解设计模式的书籍,书中不仅包含23种经典设计模式的案例,还详细介绍了设计模式背后的思想和原则,适合初学者以及对设计模式有一定了解的程序员阅读。本书旨在帮助读者理解如何...

    深入理解JavaScript系列.chm

    30.设计模式之外观模式 31.设计模式之代理模式 32.设计模式之观察者模式 33.设计模式之策略模式 34.设计模式之命令模式 35.设计模式之迭代器模式 36.设计模式之中介者模式 37.设计模式之享元模式 38.设计模式之职责...

    设计模式之外观模式

    外观模式(Facade Pattern)是设计模式中的一种结构型模式,它的主要目的是为了解耦系统,提供一个统一的入口,使得客户端可以更容易地使用复杂的子系统。在Java中,外观模式通常用于简化对复杂系统的访问,它创建了...

    Java 23种设计模式全归纳.zip

    结构类型模式队列模式、桥接模式、装饰模式、组合模式、外观模式、共享元模式、代理模式。行为类型模式模版方法模式、命令模式、迭代器模式、观察者模式、介入者模式、多层模式、解释器模式、状态模式、策略模式、...

    C#设计模式_设计模式_C#_

    外观模式(Facade Pattern) 11. 享元模式(Flyweight Pattern) 12. 代理模式(Proxy Pattern) 行为型: 13. 模板方法(Template Method) 14. 命令模式(Command Pattern) 15. 迭代器模式(Iterator Pattern) 16. 观察者...

    java 23种设计模式.zip

    设计模式主要分为三大类: 1.创建型模式:工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式。 2.结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。 4.行为型模式:...

    C#23种设计模式【完整】.pdf

    10. 外观模式(Facade Pattern):为子系统中的一组接口提供一个一致的界面,定义了一个高层接口,使得子系统更加易于使用。 11. 享元模式(Flyweight Pattern):使用共享技术来最小化对象的存储空间,避免大量相同...

    Head.First.设计模式.中文版 1-8章

    Head.First.设计模式.中文版 1 欢迎来到设计模式世界:设计模式入门  模拟鸭子应用  Joe想到继承  利用接口如何?  软件开发的不变真理 ...7 适配器模式与外观模式:随遇而安 8 模板方法模式:封装算法

    C#设计模式-外观模式

    **外观模式(Facade Pattern)**是软件工程中一种常用的设计模式,它为复杂的子系统提供了一个简单的接口,使得客户端代码可以更容易地与这些子系统交互。在C#中,外观模式同样被广泛应用,以降低系统的复杂性,提高...

    设计模式复习题.doc

    - 外观模式 - 观察者模式 - 模板方法模式 - 迭代器模式 - 代理模式 - 适配器模式 2. 设计模式的基本要素: - 名字 - 意图 - 问题 - 解决方案 - 参与者与协作者 - 实现 - 一般性构造 3. 设计模式的...

    java设计模式之外观模式.zip

    **外观(Facade)模式**是软件工程中一种常用的设计模式,属于结构型模式...理解和思考外观模式.avi"这两个视频文件,你可以更深入地理解外观模式的概念,学习如何在实际项目中应用它,以及它在解决复杂问题时的优势。

    设计模式之美——教你写出高质量代码

    "设计模式之美——教你写出高质量代码"这个主题旨在帮助开发者更好地理解和应用设计模式,从而提升代码的质量和可维护性。设计模式不仅对面试有所帮助,也是职场发展中的必备技能,无论你使用哪种开发语言。 设计...

    C#面向对象设计模式纵横谈(25):设计模式总结

    10. 外观模式:外观模式为复杂的子系统提供了一个简单的接口,简化了客户端代码。 11. 享元模式:享元模式通过共享技术有效地支持大量细粒度的对象,减少内存消耗。 12. 代理模式:代理模式为其他对象提供一种代理...

    用PHP语言实现16个设计模式.zip

    10. 外观模式:提供一个简单的接口,用于与复杂的子系统交互。它简化了客户端代码,隐藏了子系统的复杂性。 11. 享元模式:运用共享技术,有效地支持大量细粒度的对象。在PHP中,它通常用于内存敏感的场景,如大量...

    设计模式之适配器模式与外观模式demo

    在软件设计领域,设计模式是一种经过时间和实践验证的解决方案,用于解决常见的...这个"设计模式之适配器模式与外观模式demo"资源为学习和实践这两种模式提供了宝贵的实例,对于提升编程技能和设计思维具有积极意义。

    [中文]Head-First设计模式.pdf

    1. 工厂模式:这是最基础的设计模式之一,用于创建对象,它提供了一种封装对象创建过程的方法,使得具体创建哪个对象的决定可以在运行时做出。在Java中,抽象工厂模式可以用来创建一系列相关的对象。 2. 单例模式:...

Global site tag (gtag.js) - Google Analytics