讓我們想象一下,在面向對象的世界中,我想要構建一個偵聽網絡並讓我與之交互的對象。這將繼承一個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