javascript設計模式 橋接模式

javascript設計模式 橋接模式

什麼是橋接模式

講事件的實現部分和抽象部分分離開來,以便兩者可以獨立的變化

橋接模式的作用

簡單的橋接模式

abstractFn是抽象部分, 而actualFn是實現部分。 他們完全可以獨自變化互不影響。

     /**
     * 定義一個實際的接口,處理判斷一個數的奇偶
     * @param temp
     * @returns {*}
     */
    var actualFn = function (temp) {
        if (temp % 2 != 0)
            return "the num is odd";
        else
            return "The num is even";
    }
    /**
     * 定義一個抽象的接口,通過傳入相關的處理函數,來判斷一個數的奇偶
     * @param num
     * @param fn
     */
    var abstractFn = function (num, fn) {
        var result = fn.call(window, num);
        console.log(result);
    }
    // 接口的數據調用
    abstractFn(6, actualFn);

橋接模式的方法訪問類中的私有成員

    /**
     * 定義一個類
     * @constructor
     */
    var Public = function () {
        var secret = 3;
        /**
         * 通過橋接模式訪問類中的私有變量
         * @returns {number}
         */
        this.privilegedGetter = function () {
            return secret;
        }
    }

用橋接模式連接多個類

    /**
     * 定義類1
     * @param a
     * @param b
     * @constructor
     */
    var Class1 = function (a, b) {
        this.a = a;
        this.b = b;
    };
    /**
     * 定義類2
     * @param c
     * @constructor
     */
    var Class2 = function (c) {
        this.c = c;
    }
    /**
     * 定義一個相關的橋接類
     * @param a
     * @param b
     * @param c
     * @constructor
     */
    var BridgeClass = function (a, b, c) {
        this.class1 = new Class1(a, b);
        this.class2 = new Class2(c);
    }

其中的橋接類將相關的數據分發給相關的處理類,而處理類與橋接類可以進行相互獨立的改變.

橋接模式的使用場合

js編程常常基於事件驅動開發,因此接口“可橋接”,實際上也就是可適配。

橋接模式的好處

1.將功能的抽象和其實現隔離開,有助於獨立地管理軟件的各組成部分
2.分離了抽象與實現,有助於bug的尋找和數據的追蹤

橋接模式的弊端

使用橋接元素,每次都要增加一次函數調用,對應用程序的性能會產生一定的影響
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章