设计模式-(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() }
}