美文网首页
门面模式/外观模式

门面模式/外观模式

作者: 一毛钱 | 来源:发表于2019-03-31 19:24 被阅读0次

外观模式-定义

另外一种称呼:门面模式
第一点:要求一个子系统的外部和其内部的通信必需通过一个统一的对象进行。
第二点:外观模式提供了一个高层次接口,使得子系统更易于使用

外观模式-场景

场景一:为复杂系统提供一个简单接口
场景二:当我们在构建一个层次结构的子系统时,使用Facade模式定义子系统中每一层入口点。如果子系统之间相互依赖,可以通过此模式简化它们之间的依赖关系。

外观模式-角色划分

两个核心角色
角色一:系统对外统一接口
角色二:子系统接口

外观模式-原理案例

电脑:拍照(摄像头)、打电话、上网(网卡)、听音乐…
每一个功能模块都是一个高层次接口

/// 门面模式 角色一: 系统对外统一接口
class Computer: NSObject {
    
    // 角色一 持有角色二 的对象
    private var camera:CamerProtocol
    private var soundDisplayer:SoundProtocol
    
    init(camera:CamerProtocol,soundDisplayer:SoundProtocol) {
        self.camera = camera
        self.soundDisplayer = soundDisplayer
    }
    
    func playSound()  {
        self.soundDisplayer.open()
        self.soundDisplayer.PlaySound()
        self.soundDisplayer.close()
    }
    
    
    func takePicture()  {
        self.camera.open()
        self.camera.takePhone()
        self.camera.close()
    }
    
}
/// 门面模式 角色二: 子系统接口
protocol CamerProtocol {
    func open()
    func takePhone()
    func close()
}
/// 门面模式 角色二的 接口实现
class Camera: CamerProtocol {
    func open() {
        print("相机----开机")
    }
    
    func takePhone() {
        print("相机----照相")
    }
    
    func close() {
        print("相机----关机")
    }
    
 
}
/// 门面模式 角色二: 子系统接口 声音播放系统
protocol SoundProtocol {
    func open()
    func PlaySound()
    func close()
}
/// 门面模式 实际上也就是外观模式 角色二的实现
class SoundCard: SoundProtocol {
    func open(){
        print("声音----开---")
    }
    func PlaySound(){
        print("播放声音--- ")
    }
    func close(){
        print("声音---- 关----")
    }
}

UML图

Snip20190331_12.png

相关文章

  • 外观模式(Facede)

    本文参考自: 《JAVA设计模式》之外观模式(Facade) 1. 作用 外观模式也叫门面模式,门面模式是对象的结...

  • 门面模式(外观模式)

    门面模式: 优点 使用场景

  • 门面模式/外观模式

    外观模式-定义 另外一种称呼:门面模式第一点:要求一个子系统的外部和其内部的通信必需通过一个统一的对象进行。第二点...

  • 外观模式(门面模式)

    定义:为系统中的一组接口提供一个统一的接口。 外观定义了一个高层接口,让子系统更易于使用。 例子1):我不想开车,...

  • 设计模式[9]-外观模式-Facade Pattern

    1. 外观模式 外观模式(Facade Pattern),又称为门面模式,是非常常用的结构性设计模式。外观模式使得...

  • 外观/门面模式

    一. 概念 定义:Provide a unified interface to a set of interfac...

  • 设计模式(结构型)-- 门面/外观模式

    门面模式的原理与实现 门面模式,也叫外观模式,英文全称是 Facade Design Pattern。在 GoF ...

  • 结构型-Facade

    门面模式的原理与实现 门面模式,也叫外观模式,英文全称是 Facade Design Pattern。在 GoF ...

  • 设计模式详解——外观模式

    本篇文章介绍一种设计模式——外观模式。本篇文章内容参考《JAVA与模式》之门面模式,外观模式,深入浅出外观模式(二...

  • 设计模式——门面模式(外观模式)

    《Head First 设计模式》《设计模式之禅(第二版)》 学习笔记,码云同步更新中如有错误或不足之处,请一定指...

网友评论

      本文标题:门面模式/外观模式

      本文链接:https://www.haomeiwen.com/subject/gcbubqtx.html