Swift protocol 结合 where <面向协议编程>

《转》
//protocol
protocol JJProtocol
{
    func getString()
}

// 只给遵守了 JJProtocol 协议的UIView添加了下面的拓展
// 强大的协议拓展  可以给协议添加默认实现   面向协议编程的基础
extension JJProtocol where Self:UIView 
{
    func getString() -> String{
        return "string"
    }
}

class MyView:UIView { 
}

// MyView遵守了JJProtocol协议,所以给MyView添加拓展
extension MyView: JJProtocol {
}

let myView = MyView()
// 因此这里myView可以调用getString()方法
let aStr = myView.getString()

你可能感兴趣的:(Swift protocol 结合 where <面向协议编程>)