我目前遇到的问题是我有一个对象应该监听另一个对象。
问题是:我应该如何处理订阅?目前,我只知道两种可能的方法:
与注册人:
var Registrator = function() {
this.listener = new Listener();
};
Registrator.prototype.register = function(subsriber) {
var self = this;
subscriber.on('event', function(info) {
self.listener.doSomething(info);
});
};
在构造函数中:
var Subscriber = function() {
var listener = require('./instanced-listener');
this.on('event', function(info) {
listener.doSomething(info);
});
};
如您所见,这两种方法都不是那么整洁。我可以使用另一种模式来解决这个问题吗?
PS:
如果这个例子看起来太抽象,这里是源代码:
https://github.com/bodokaiser/documents/blob/master/lib/repository.js
检查构造函数以查看我的不满:)