正面

立面提供了統一的,高階別介面到子系統介面。這允許更簡單,更安全地訪問子系統的更一般的設施。

以下是用於在 UserDefaults 中設定和檢索物件的 Facade 的示例。

enum Defaults {

    static func set(_ object: Any, forKey defaultName: String) {
        let defaults: UserDefaults = UserDefaults.standard
        defaults.set(object, forKey:defaultName)
        defaults.synchronize()
    }

    static func object(forKey key: String) -> AnyObject! {
        let defaults: UserDefaults = UserDefaults.standard
        return defaults.object(forKey: key) as AnyObject!
    }

}

用法可能如下所示。

Defaults.set("Beyond all recognition.", forKey:"fooBar")
Defaults.object(forKey: "fooBar")

訪問共享例項和同步 UserDefaults 的複雜性對客戶端是隱藏的,並且可以從程式中的任何位置訪問此介面。