Seria errado passar o NegociaçõesView como parâmetro no construtor do NegociacoesModel para usar o update da view quando invocado o método adiciona/apaga ?
Exemplo:
class NegociacoesController{
constructor(){
let $ = document.querySelector.bind(document);
//this._negociacoes = new NegociacoesModel(model => this._negociacoesView.update(model));
this._negociacoesView = new NegociacoesView($("#negociacoesView"));
this._mensagemView = new MensagemView($("#mensagemView"));
`**this._negociacoes = new NegociacoesModel(this._negociacoesView);**`
}
class NegociacoesModel{
constructor(view){
this._negociacoes = [];
this._view = view;
}
adiciona(negociacao){
this._negociacoes.push(negociacao);
`**this._view.update(this._negociacoes);**`
}
get negociacoes(){
return [].concat(this._negociacoes);
}
esvazia(){
this._negociacoes = [];
`**this._view.update(this._negociacoes);**`
}
}