【发布时间】:2015-09-21 12:51:56
【问题描述】:
我必须实现一个类似于存储库模式的对象,该对象将维护一个项目列表。仓库看起来像这样:
var repository = {
data: [],
getAll: function() {
return this.data;
},
update: function() { ... }
}
回购数据的最终消费者将是某个组件。我正在考虑利用对 repo 数据数组的引用,以便在 DOM 发生变化时更新它:
function ItemList() {
this.data = repository.getData();
when (this.data is changed) {
update the view
}
this.userInput = function() {
repository.update();
}
}
虽然它感觉很整洁并且据说使用了合法的功能,但这真的是个好主意吗?我应该在存储库中使用观察者/通知吗?
var repository = {
...
onDataChange: function(callback) { ... }
}
您可以在此处找到一个示例(使用 Angular):http://jsfiddle.net/xen8m148/
【问题讨论】:
标签: javascript design-patterns pass-by-reference anti-patterns