protocolとdelegateの簡単な例

「class A」内の処理 →メソッド「Am()」の実装を
「class A」のインスタンスを生成している別のクラス
「class B」に任せる(委譲)。

protocol Myprotocol{
   func say()
}
class A{
    var delgate:Myprotocol?
        func Am(){
            delgate?.say()
        }
}
class B:Myprotocol {
    let a2 = A()
    
    init(){
        self.a2.delgate = self
        self.a2.Am()
    }
    //プロトコルで定義したデリゲートメソッドを実装する
    func say() {
        println("protcol")
    }
}
let b = B()//結果"protcol"

「class A」のメソッド「Am()」の内容を
「class B」のメソッド「say()」で実装している。

これで説明できているか、わからない。
どなたかご教示お願いします。

コメント