使用'实例的任何固有好处而不是包含'而不是包含' EventEmitter的模式?

时间:2014-10-25 16:58:58

标签: node.js inheritance eventemitter

我发现我读到的有关EventEmitter(书籍或互联网)的所有内容都使用了继承实现。

除了更复杂(使用Util.inherits,在类中调用EventEmitter构造函数)之外,你会遇到多重继承的问题(除非你添加更多的卷积),并且我发现的类范围事件的灵活性较低。

这张照片出了什么问题?:

EventEmitter = require('events').EventEmitter;

function DummyContainer()
{
    this.Events = new EventEmitter();
}

DummyContainer.prototype.ClassEvents = new EventEmitter();

Test1 = new DummyContainer();

Test1.Events.on('Test', function() {
    console.log('Test');
});

Test1.ClassEvents.on('ClassTest', function() {
    console.log('ClassTest');
});

Test2 = new DummyContainer();

Test1.Events.emit('Test');
Test2.ClassEvents.emit('ClassTest');

在我看来,上面的内容更具可读性,不需要任何多重继承的解决方法(因为它首先不使用继承)并且作为奖励,可以让您轻松区分在全班和实例活动之间。

如果不使用它,除了必须输入更多内容之外,是否有任何动机使用继承方式而不是这个?

0 个答案:

没有答案