让我们想象一下,在面向对象的世界中,我想要构建一个侦听网络并让我与之交互的对象。这将继承一个EventEmitter,并会是这个样子:创建Cycle.js可重用模块
var torrent = new Torrent(opts)
torrent.on('ready', cb) // add torrent to the UI
torrent.on('metadata', cb) // update data in the UI
,我也可以把它做的事情:
torrent.stop()
torrent.resume()
然后,当然,如果我想要做从内存中删除的洪流中,我可以致电torrent.destroy()
。
这个面向对象方法的好处是我可以很容易地将这个功能打包在自己的npm模块中,测试地狱,并为用户提供一个漂亮的可重用API。
我的问题是,我如何通过Cycle.js应用程序实现这一目标?
如果我创建一个驱动程序,我不清楚我将如何去创建许多种子和拥有自己的独立听众。还要考虑我想以其他人可以在其他Cycle.js应用程序中轻松重用它的方式打包功能。
是我觉得我在思考它存在的问题一个功能性的方式,而不是当务之急。所以你说我会有一个TorrentDriver,我可以发送资源并创建torrent实例?理解我的实际“洪流对象”在哪里会令人困惑。因为它需要存储在某个地方。 –
这个函数(可能不是驱动程序)不会返回实例 - 这将是一种“功能方式”。它应该只返回您可以使用的流并对其做出反应。因此,源代码应该是创建种子(一些DOM事件或操作等)和接收器(返回流)的东西,可以是您可以在您的应用中使用的某种结果(流中用于在DOM中写入的视图或某些数据流)。这取决于你想要完成什么,但通常用于创建实例并像你想要的那样使用它们不是循环组件会做的事情...... – domagojk