Nella mia applicazione node.js, ho una classe di coda che ha metodi push
e pop
e una proprietà data
. Ho una classe Event
che gestisce un evento e la spinge in coda.
Se penso orientato agli oggetti, la relazione tra coda ed evento è meglio modellata come "è a" (ereditarietà) o "ha a" (composizione)?
Primo approccio:
var util = require('util'),
array = [];
function Q(source){
this.data = source;
}
Q.prototype.push = function(x){
this.data.push(x);
};
Q.prototype.show = function(){
console.log(this.data);
};
function Event(y){
Q.call(this, y);
}
util.inherits(Event,Q);
Event.prototype.trigger = function(bb){
//some logic
this.push(bb);
};
var x = new Event(array);
x.trigger('hi');
x.show();
Secondo approccio:
var array = [];
function Q(source){
this.data = source;
}
Q.prototype.push = function(x){
this.data.push(x);
};
Q.prototype.show = function(){
console.log(this.data);
};
function Event(y){
this.arr = new Q(y);
}
Event.prototype.trigger = function(bb){
//some logic
this.arr.push(bb);
};
var x = new Event(array);
x.trigger('hi');
x.show();