能否请您解释一下什么是MVC /观测技术类似物在两种情况下:MVC /观察员和不可变的数据结构
- 不可变对象(OOP风格)
- 不可变的数据(功能型)
例如,让我们考虑一下下面这个简单的GUI示例(你可以尝试住在这里http://tinkerbin.com/0XDHRXIl点击“运行”按钮启动,等待2秒,文本显示)
它是用JavaScript的编译,因为它很容易发挥和MVC /观察员是很自然的把它
// Model containing the data.
var Post = Backbone.Model.extend({})
var PostView = Backbone.View.extend({
initialize: function() {
// Registering view rendering method as
// an observer on the model.
this.model.on('all', this.render.bind(this))
},
// Every time state of model changes
// this method will be called.
render: function() {
// Printing value of model.text attriubute.
this.$el.html(this.model.get('text'))
return this
}
})
// Now, any time the model is updated the view will be also
// automatically updated.
post.set({text: "hello, it's me"})
但我不太明白如何做永恒OOP和功能性的风格相同,有哪些途径?