什么是swift中的Sink协议?

时间:2014-06-11 14:01:28

标签: swift

Swift标头的Sink协议定义为

protocol Sink {
    typealias Element
    func put(x: Element)
}

什么是Sink协议,它应该用于Swift和Cocoa设计模式?

我能说出的唯一可以实现此协议的是

struct IntEncoder : Sink {
    var asInt: UInt64
    var shift: UInt64
    func put(x: CodeUnit)
}

1 个答案:

答案 0 :(得分:3)

接收器(如"厨房接收器")代表生产者/消费者对的消费者方。它是一个抽象的接口,只接受某种输入。因此,任何产生对象的东西都可以被赋予Sink作为传递对象的方式。这是生产者需要了解消费者传递对象的最少知识。

队列和集合是仅存储输入的简单接收器的示例。网络连接或记录器可以充当立即处理输入的接收器。