设计模式-(8)外观(swift版)

一,概念

  为子系统中的一组接口提供一个统一的接口。外观模式定义了一个更高层次的接口,这个接口使得这一子系统更加容易使用。

 

二,结构图

  

 

(1)SubSystem子系统类:每个子系统定义了相关功能和模块的接口。
(2)Facade(外观类):整合子系统中的接口,客户端可以调用这个类的方法。
(3)Clients(客户端):通过外观类提供的接口和各个子系统的接口进行交互。

 

三,Demo演示

SubSystemA

class DiskComponent: NSObject {
    func start()  {
        print("disk start")
    }
    func shutdown() {
        print("disk shutdown")
    }
}

 SubSystemB

class MemoryComponent: NSObject {
    func start()  {
        print("memory start")
    }
    func shutdown() {
        print("memory shutdown")
    }
}

 SubSystemC

class CPUComponent: NSObject {
    func start()  {
        print("cpu start")
    }
    func shutdown() {
        print("cpu shutdown")
    }
}

 Facade

class Computer: NSObject {
    let cpu: CPUComponent
    let memory: MemoryComponent
    let disk: DiskComponent
    
    override init() {
        cpu = CPUComponent()
        memory = MemoryComponent()
        disk = DiskComponent()
    }
    
    func start() {
        print("computer start///")
        disk.start()
        memory.start()
        cpu.start()
    }
    
    func shutdown()  {
        print("computer shutdown///")
        cpu.shutdown()
        memory.shutdown()
        disk.shutdown()
    }
}

 Client

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        Computer().start()
    }
}

 

posted on 2018-03-30 22:33  洋子哥哥  阅读(142)  评论(0编辑  收藏  举报