1.观察者模式
//当一个对象改变,同时要改变其他对象,但不知道要改变多少个其他对象的时候,就应该使用观察者模式
function show(name){
console.log(name);
}
var objservable = {
cbArr: [],add: function(fun){
this.cbArr.push(fun);
},fire: function(){
this.cbArr.forEach(function(fun){
fun(data);
})
}
}
// 开始订阅
obj.add(function(){ console.log(1) });
obj.add(function(){ console.log(2) });
// 开始发布
obj.fire();
2.模式的实际运用
$({ url: 'index.PHP',context: dataObj}).done(function(data){
$('div').html(data);
$('div').animate();
$('div').show;
});
// 在回调中做一系列的任务过于繁琐,那么观察者模式可以很好的解决这个问题;
observable.add(function(data){
$('div').html(data);
})
observable.add(function(data){
if(data.status){
$('div').animate();
}
})
observable.add(function(data){
$('div').show();
})
$({ url: 'index.PHP',context: dataObj}).done(function(data){
observable.fire(data);
})
总的来说,观察者模式就是在解耦,让耦合的双方都依赖于抽象,而不依赖于具体,从而达到,一边的变化不会影响到另一边。