设计模式-(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()
}
}
浙公网安备 33010602011771号