現在、別のオブジェクトをリッスンする必要があるオブジェクトがあるという問題があります。
問題は、サブスクリプションをどのように処理すればよいかということです。現在、私は2つの可能な方法しか知りません:
登録者の場合:
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
コンストラクターをチェックして、私の不幸を確認してください:)