`

设计模式之外观模式-引导篇及原理

 
阅读更多

外观模式-引导篇及原理

 

来看看司小司的新项目-家庭影院控制接口项目

家庭影院设备:

DVD播放器、投影仪、自动屏幕、环绕立体声、爆米花机等等。

对于的类对象:DVDPlayer、Projector、Stereo、Popcorn、Screen、TheaterLights etc...

类图如下:

我们知道,这些设备需要遥控器,同时这些设备都对外提供了接口。如果一个设备一个遥控器是不是很麻烦。现在需求是,为了方便省事。只需要一个设备来处理。

来源:凯哥Java(kaigejava)

我们先来看看传统的控制接口设计,步骤如下图:

看一场家庭影院,还这么多步骤。确实很麻烦。我们来分析:爆米花机可以看作是一个子系统、投影仪是一个子系统、音响可以看作是一个子系统等等。我们将各个设备都单独的看作是一个子系统,我们就会发现,这些子系统或许存在着内部关联关系或者是需要统筹协调工作的。有没有更好的解决方案呢?

 

司小司调研之后,决定使用外观模式这种设计模来实现这种需求。我们先来看看外观模式是什么。

我们可以将以上各个设备相识或者有关联的操作放到一个方法中,然后对外在提供统一的一个对象接口。这样,比如说,我们先要准备:爆米花机开机、投影仪开机、屏幕自动放下这一组操作放到一个方法中。DVD碟片选择、灯光调暗、播放DVD这一组操作放到一个方法中。关闭各种设备操作放到一个方法中。最后我们就得到了如下的类图:

经过上面分析,我们可以知道:

外观模式:对外提供了一个统一的接口,来访问子系统中一群功能相关接口。

外观模式定义了一个高层接口,让子系统更容易使用。

我们来看看代码结构:

说明:

爆米花机、投影仪、屏幕等我们使用的都是单例模式。因为这些东西,一个家庭一个就可以了。所以这里就使用了单例模式来处理的。

凯哥个人博客:www.kaigejava.com

凯哥公众号:凯哥Java(kaigejava)

在测试类中:

我们调用了准备及播放功能。运行结果:

我们发现,对外提供接口解耦提高了。

分享到:
评论

相关推荐

    设计模式_外观模式示例代码

    外观模式(Facade Pattern)是一种结构型设计模式,它提供了一个统一的接口,用于与一个复杂的子系统进行交互。这个接口简化了子系统的使用,使得客户端无需了解子系统内部的复杂性。在本示例中,电脑整机可以看作是...

    设计模式英文版-Design Pattern Explained

    总而言之,《设计模式英文版-Design Pattern Explained》不仅是一本介绍设计模式的书籍,更是一本引导读者从面向对象编程走向真正面向对象思维的指南。通过本书的学习,读者可以更好地理解面向对象编程的本质,并将...

    设计模式代码实现+源码设计模式分析

    总结来说,"设计模式代码实现+源码设计模式分析"是一个全面的学习路径,它不仅教会我们如何在实践中应用设计模式,还引导我们深入理解这些模式背后的原理,提高我们的编程素养和系统设计能力。在实际工作中,无论是...

    Head First Design Patterns 英文版 Head First设计模式

    本书结合认知科学原理和神经生物学研究,采用引导式教学方法,通过故事和生活化的例子将设计模式的精髓深入浅出地传达给读者。书中不仅涉及了23个经典的设计模式,还融合了UML类图、实例代码以及大量的插图和幽默的...

    深入浅出设计模式免费

    《深入浅出设计模式》一书通过新颖的教学方法,结合神经生物学、认知科学及学习理论,帮助读者深入理解并掌握各种设计模式。 #### 谁应该阅读这本书? 本书适合任何希望提高软件设计技能的人士,无论你是初学者...

    深入浅出设计模式第一章中文.zip

    1. 设计模式的起源:可能会追溯到GoF(Gang of Four)的《设计模式:可复用面向对象软件的基础》这本书,这是设计模式领域的经典之作,对后来的设计模式研究产生了深远影响。 2. 设计原则:包括开闭原则(Open-...

    Head First Java设计模式(高清中文完整版+附书源码)

    然后,书中详细介绍了23种GOF(GoF,Gang of Four)设计模式,包括创建型模式(如单例模式、工厂方法模式、抽象工厂模式)、结构型模式(如适配器模式、装饰器模式、代理模式、桥接模式、组合模式、外观模式、享元...

    C++设计模式

    结构型模式则关注如何组合类和对象以构建更大的结构,如适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式和代理模式,这些模式帮助我们处理类与类之间的关系,实现类的组合和封装。行为型模式则主要...

    23种设计模式学习笔记

    这个“23种设计模式学习笔记”文档将引导你深入理解这些模式,并帮助你在实际编程中有效地应用它们。以下是对23种设计模式的详细解读: 1. **单例模式**:确保一个类只有一个实例,并提供全局访问点。它常用于控制...

    23种java设计模式.rar

    "23种Java设计模式.pdf"这份文档很可能是详细阐述这些模式的教程,涵盖了每种模式的原理、应用场景、优缺点以及如何在Java代码中实现。"下载说明.txt"可能包含下载和阅读这份资料的指南,而"A5下载- 更全的站长资源...

    java进阶必看书籍

    《Head First设计模式》共涵盖了23种经典的设计模式,包括创建型模式(如单例模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式)、结构型模式(如适配器模式、装饰器模式、代理模式、桥接模式、组合模式、...

    DesignPatternsExplained

    本书基于多年的教学经验编写而成,旨在帮助读者理解设计模式的基本原理和动机,从而快速掌握其精髓。 #### 设计模式的基础概念 设计模式是一种通用的解决方案,用于解决软件设计中常见的问题。它们不是特定于某个...

    Head_First_Design_Patterns.pdf (英文版)

    《Head_First_Design_Patterns》是一本专...总之,《Head_First_Design_Patterns》不仅是一本技术书籍,它还引导读者思考如何通过设计模式来优化软件架构,提高代码质量,是一本值得每个软件开发者深度阅读的经典之作。

    refind引导主题变形金刚

    另外,由于涉及到系统引导,建议对相关操作有一定的了解,或者在安全模式下进行,以免出现问题。 总的来说,"refind引导主题变形金刚"是一个利用REFInd启动管理器创造的独特引导界面,它将变形金刚元素融入其中,为...

    优秀java swing GUI 工作原理.pd

    Swing遵循模型-视图-控制器(Model-View-Controller,MVC)架构模式,这是一种将应用程序逻辑与用户界面分离的设计模式。模型负责管理应用程序的数据和业务逻辑,视图负责显示数据,而控制器则处理用户输入并将其...

    葵花宝典--WPF自学手册

    11. **设计模式**:在WPF开发中,会涉及MVVM(Model-View-ViewModel)设计模式,理解并应用这种模式能帮助你编写更清晰、更易于维护的代码。 12. **性能优化**:学习如何优化WPF应用程序,包括减少内存消耗、提高...

    2012年最有价值的Android开发精品文章荟萃【800篇】

    这一系列文章通过实例讲解了多种设计模式在Android开发中的应用,帮助读者更好地理解这些模式并能在实际项目中运用它们来优化代码结构。 ### Android开发从零开始 **知识点概述:** - **环境搭建**:详细介绍如何...

    夏普MX M3608 4608 5608N 3658 4658 5658N中文维修手册

    - 对设备的外观设计和内部结构进行了详细介绍,包括各个组件的位置、功能及其相互之间的连接关系,这对于理解设备的工作原理至关重要。 #### 四、调整与设定 这部分详细介绍了各种调整方法,包括但不限于: - **显...

    基于Makeblock的小学机器人教学模式研究.pdf

    在讨论搭建阶段,学生以小组形式展开讨论,共同探讨搭建结构、功能实现及外观造型等,同时进行编程,实现机器人的设计要求。 6. 机器人教学模式对培养学生创新思维和动手能力的作用: 通过这种教学模式的实践,学生...

Global site tag (gtag.js) - Google Analytics