加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift设计模式之保护代理模式

发布时间:2020-12-14 06:59:40 所属栏目:百科 来源:网络整理
导读:转自 Swift设计模式 原文 Design-Patterns-In-Swift // 保护代理模式 // 百度百科:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用 // 设计

转自

  • Swift设计模式

原文

  • Design-Patterns-In-Swift
// 保护代理模式
// 百度百科:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用
// 设计模式分类:结构型模式

/** * 电脑接口 */
protocol PC {
    func connect(ip: String) -> Bool
}

/// 电脑实现
class MyPC: PC {
    func connect(ip: String) -> Bool {
        print("connect to (ip)")
        return true
    }
}

/// 代理实现
class MyProxy: PC {

    var pc: MyPC!

    init(pc: MyPC) {
        self.pc = pc
    }

    func connect(ip: String) -> Bool {
        if ip == "10.10.10.10" {
            print("(ip) has been limited")
            return false
        } else {
            pc.connect(ip)
            return true
        }
    }
}

let pc = MyPC()
let proxy = MyProxy(pc: pc)

proxy.connect("1.2.3.4")
proxy.connect("10.10.10.10")

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读