2014-06-11 84 views
2

雨燕头已经宿协议定义为Swift中的Sink协议是什么?

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

什么是水槽协议,应该说,它是用于关于雨燕和可可设计模式?

,我可以告诉实现此协议的唯一事情是

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

协议现在看起来是空的。 –

回答

3

甲水槽(如在“厨房水槽”)代表一个生产者/消费者对消费者侧。这是一个只接受某种输入的抽象接口。因此,任何产生对象的东西都可以用Sink作为交付对象的方式。这是生产者需要消费者传递物品的最少量知识。

队列和集合是存储输入的简单汇的例子。网络连接或记录器可以作为接收器立即处理输入。

+0

注意:这也是nodejs中存在的一个概念:http://bl.ocks.org/joyrexus/10026630(ps - 我不是作者,也不知道那篇文章的作者:) – Jiaaro

+0

没有下沉在厨房的水槽里,但像水槽里的水槽一样,时间下沉,交流是源头。 –

+0

当然,那些也是,但为什么不是厨房水槽?这些都是以相同的概念命名的。 – nschum