国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

實(shí)現(xiàn)觀察者模式-observer

lei___ / 896人閱讀

摘要:來(lái)源于阿賢博客觀察者模式我們?cè)谌粘i_(kāi)發(fā)使用經(jīng)常遇到一些場(chǎng)景需要使用到觀察者模式,比如登錄成功需要改動(dòng)同步頁(yè)面多個(gè)模塊的信息,這時(shí)最佳選擇是使用觀察者模式。

來(lái)源于:阿賢博客

observer 觀察者模式
我們?cè)谌粘i_(kāi)發(fā)使用經(jīng)常遇到一些場(chǎng)景需要使用到觀察者模式,比如登錄成功需要改動(dòng)同步頁(yè)面多個(gè)模塊的信息,這時(shí)最佳選擇是使用observer 觀察者模式。
又是一個(gè)難忘清明節(jié),這一次在大巴上過(guò)節(jié)了,只能在大巴上寫(xiě)作咯,從昨晚9點(diǎn)30分在廣州省汽車(chē)站出發(fā)到現(xiàn)在中午12點(diǎn)30分還未到。歷經(jīng)了15個(gè)小時(shí)還未到家,不是老家路途太遙遠(yuǎn),而是中國(guó)人有錢(qián)的人家太多了,導(dǎo)致一路堵車(chē)。想必很多小伙伴都有同樣的感受吧,不過(guò)還差1個(gè)多小時(shí)就到家了。
class Apm {
    constructor(){
        //觀察者模式
        this.observer = {
            //訂閱
            addSubscriber: function (callback, opt) {
                this.subscribers[this.subscribers.length] = {
                    callback: callback,
                    opt: (opt !== "undefined") ? opt : {}
                };
            },
            //退訂
            removeSubscriber: function (callback) {
                for (var i = 0; i < this.subscribers.length; i++) {
                    if (this.subscribers[i].callback === callback) {
                        delete (this.subscribers[i]);
                    }
                }
            },
            //發(fā)布
            publish: function (what, _observer) {
                for (var i = 0; i < this.subscribers.length; i++) {
                    if (typeof this.subscribers[i].callback === "function") {
                        
                        let observer = (_observer !== "undefined") ? _observer : {};
                        // 執(zhí)行注冊(cè)的各種回調(diào)
                        this.subscribers[i].callback({ret: what, opt: this.subscribers[i].opt, observer: observer});
                    }
                }
            },
            // 將對(duì)象o具有觀察者功能
            make: function (o) { 
                for (var i in this) {
                    o[i] = this[i];
                    o.subscribers = [];
                }
            }
        };
        this.observerLogin = {
            success: function (ret) {
                this.publish(ret, {type: "success"});
            },
            error: function(ret){
                this.publish(ret, {type: "error"});
            }
        };
        // 創(chuàng)建觀察者模式
        this.observer.make(this.observerLogin);
    }
    login() {
        fetch({}).then((res)=>{
            if(res.code == 0){
                //發(fā)布登錄成功
                this.observerLogin.success(ret);
            }else{
                //發(fā)布登錄失敗
                this.observerLogin.error (ret);
            }
            
        })
    }
}
var apm = new Apm;

//業(yè)務(wù)邏輯
var Main = {
    init: function(){
        var _ts = this;
        //監(jiān)聽(tīng)登錄成功時(shí)觸發(fā)數(shù)據(jù)
        apm.observerLogin.addSubscriber(function(params){
            /*params = {
                ret: ret,//接口數(shù)據(jù)
                opt: opt, //方法傳參
                observer: { //觀察者數(shù)據(jù)
                    type: "success"
                }
            };*/
        }, {_ts: _ts});
        
        /**** 觀察者模式 ****/
        var testPage = {
            comment: function (data) {
                console.log("評(píng)論功能的作者名字:" + data["name"], data["msg"]);
                // for(var key in data){
                //     console.log("key", key, data[key]);
                // }
            },
            video: function (data){
                console.log("視頻作者bid:" + data["bid"], data["msg"]);
            }
        };

        //先注冊(cè)登錄觀察
        apm.observerLogin.addSubscriber(testPage.comment);
        apm.observerLogin.removeSubscriber(testPage.video);
    }
};

來(lái)源于:阿賢博客

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/103247.html

相關(guān)文章

  • 一起學(xué)設(shè)計(jì)模式 - 察者模式

    摘要:觀察者模式是一種使用頻率非常高的設(shè)計(jì)模式,無(wú)論是移動(dòng)應(yīng)用應(yīng)用或者桌面應(yīng)用,觀察者模式幾乎無(wú)處不在,它為實(shí)現(xiàn)對(duì)象之間的聯(lián)動(dòng)提供了一套完整的解決方案,凡是涉及到一對(duì)一或者一對(duì)多的對(duì)象交互場(chǎng)景都可以使用觀察者模式。 觀察者模式(Observer Pattern)屬于對(duì)象行為型模式的一種,定義對(duì)象之間的一種一對(duì)多依賴(lài)關(guān)系,使得每當(dāng)一個(gè)對(duì)象狀態(tài)發(fā)生改變時(shí),其相關(guān)依賴(lài)對(duì)象皆得到通知并被自動(dòng)更新。 ...

    cpupro 評(píng)論0 收藏0
  • 慕課網(wǎng)_《模式的秘密之察者模式》學(xué)習(xí)總結(jié)

    摘要:時(shí)間年月日星期二說(shuō)明本文部分內(nèi)容均來(lái)自慕課網(wǎng)。慕課網(wǎng)教學(xué)源碼學(xué)習(xí)源碼第一章觀察者模式概述課程簡(jiǎn)介觀察者模式的定義定義對(duì)象間的一種一對(duì)多的依賴(lài)關(guān)系。 時(shí)間:2017年08月29日星期二說(shuō)明:本文部分內(nèi)容均來(lái)自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)源碼:https://github.com/zccodere/s...學(xué)習(xí)源碼:https://github.com/z...

    iKcamp 評(píng)論0 收藏0
  • 察者模式

    摘要:簡(jiǎn)介學(xué)習(xí)本篇博文,我們知道在什么場(chǎng)景下使用觀察者模式。觀察者模式給我們?cè)诮窈箝_(kāi)發(fā)中什么思想。為什么需要觀察者模式從定義中我們可以知道觀察者模式當(dāng)對(duì)象改變時(shí),其他依賴(lài)的對(duì)象都會(huì)收到改變信息的狀態(tài)。 簡(jiǎn)介 1.學(xué)習(xí)本篇博文,我們知道在什么場(chǎng)景下使用觀察者模式。2.觀察者模式的優(yōu)缺點(diǎn)。3.觀察者模式給我們?cè)诮窈箝_(kāi)發(fā)中什么思想。 場(chǎng)景 某家科技公司目前在開(kāi)發(fā)一個(gè)項(xiàng)目,設(shè)計(jì)小組需要上報(bào)項(xiàng)目的進(jìn)度...

    Miracle 評(píng)論0 收藏0
  • Java 設(shè)計(jì)模式察者模式

    摘要:三內(nèi)置觀察者模式了解內(nèi)置觀察者模式包內(nèi)包含最基本的類(lèi)與接口,這和上面的接口與接口很類(lèi)似。根據(jù)具體的需求,如果內(nèi)置的觀察者模式不能滿(mǎn)設(shè)計(jì),那么我們可以像剛開(kāi)始那樣自己實(shí)現(xiàn)一套觀察者模式。參考資料設(shè)計(jì)模式 一、了解觀察者模式 1.1 什么是觀察者模式 觀察者模式定義了對(duì)象之間的一對(duì)多依賴(lài),這樣一來(lái),當(dāng)一個(gè)對(duì)象狀態(tài)改變時(shí),它的所有依賴(lài)者都會(huì)收到通知并自動(dòng)更新。 典型的問(wèn)題比如報(bào)社,只要你是他...

    jsummer 評(píng)論0 收藏0
  • RxJava系列二(基本概念及使用介紹)

    摘要:作用默認(rèn)的,直接在當(dāng)前線(xiàn)程運(yùn)行總是開(kāi)啟一個(gè)新線(xiàn)程用于密集型任務(wù),如異步阻塞操作,這個(gè)調(diào)度器的線(xiàn)程池會(huì)根據(jù)需要增長(zhǎng)對(duì)于普通的計(jì)算任務(wù),請(qǐng)使用默認(rèn)是一個(gè),很像一個(gè)有線(xiàn)程緩存的新線(xiàn)程調(diào)度器計(jì)算所使用的。這個(gè)使用的固定的線(xiàn)程池,大小為核數(shù)。 轉(zhuǎn)載請(qǐng)注明出處:https://zhuanlan.zhihu.com/p/20687307 RxJava系列1(簡(jiǎn)介) RxJava系列2(基本概念及使...

    Profeel 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<