1. 程式人生 > >觀察者模式(釋出訂閱模式)

觀察者模式(釋出訂閱模式)

1.觀察者模式的背後,總的想法是在應用程式中增強鬆耦合性。
2.觀察者也被叫做訂閱者,它指向被觀察的物件,即被觀察者。當事件發生時,被觀察者就會通知觀察者。
3.觀察者的使用場合
當一個物件的改變需要同時改變其他物件,並且它不知道有多少物件需要改變的時候。
4.JS中對觀察者模式的實現是通過回撥來實現的。
5.總的來說,觀察者模式所做的工作就是解耦,讓耦合的雙方都依賴於抽象,而不是依賴於具體,從而使得各自的變化都不會影響到另一邊的變化
function show(data){
$(“body”).append(“

  • ” + data + “
  • “)
    }
    //定義一個Observable物件,其內部包含2個方法:訂閱add方法和釋出fire方法
    var Observable = {
        callbacks:[],
        add:function(fn){
            this.callbacks.push(fn);
        },
        fire:function(){
            this.callbacks.forEach(function(fn){
                fn();
            })
        }
    }
    
    //訂閱
    Observable.add(function(){
        show("姚帆上")
    })
    Observable.add(function(){
        show("姚帆下")
    })
    
    //釋出(釋出之後才會執行)
    Observable.fire();