JS設(shè)計模式(一)

Javascript設(shè)計模式之創(chuàng)建型設(shè)計模式

設(shè)計模式是一種軟件開發(fā)的思想,有益于降低代碼的耦合性,增強(qiáng)代碼的健壯性。往往在大型項目中用的比較多。

一. 簡單工廠模式

簡單工廠模式: 又叫靜態(tài)工廠方法,由一個工廠對象決定創(chuàng)建某一種產(chǎn)品對象實例。主要用來創(chuàng)建同一類對象

/*方式一,對不同類實例化封裝*/
    //創(chuàng)建提示框類
    var  LoginAlert  = function(text){
        this.content = text
    }
    
    LoginAlert.prototype.show = function(){
        //顯示警示框
    }
    
    var userNameAlert = new LoginAlert('用戶名不能多于16個字母或數(shù)字');
    userNameAlert.show();
    
    var passWordAlert = new LoginAlert('密碼錯誤');
    passWordAlert.show();
    
    
    //創(chuàng)建確認(rèn)框類
    var LoginConfirm = function(text){
        this.content = text
    }
    
    LoginConfirm.prototype = {
        show:function(){
            //彈出確認(rèn)框(確認(rèn)框是包含兩個按鈕的)
    
            },
        draw:function(){//繪制確認(rèn)框
            
        }    
    }
    
    var loginSucess = new LoginConfim('歡迎回來');
    var loginFailed = new LoginConfim('登錄失敗');
    loginSucess.draw();
    loginSucess.show();
    loginFailed.show();
    
    //現(xiàn)在將兩個類封裝成一個簡單工廠函數(shù)
    var PopFactory = function(name){
        switch(name){
            case 'alert'
                return new LoginAlert();
            case 'confirm'
                return new LoginConfirm();
        }
    }
    
    new PopFactory('alert');
    
    /*方式二,創(chuàng)建相似對象*/
    function CreatPop(type,text){
        var o = new Object();
        o.content = text;
        o.show = function(){
            //顯示彈框
        }
        
        if(type == 'alert'){
            //
        }
        if(type == 'confirm'){
            //確認(rèn)框
        }
        
        return o
    }
    
    var loginConfirm = new CreatPop('confirm','歡迎回來')

總結(jié)

第一種方式是通過實例化對象創(chuàng)建的,第二種是通過創(chuàng)建一個新對象然后包裝增強(qiáng)其屬性功能來實現(xiàn)的。他們之間的差異性也造成前面通過類創(chuàng)建的對象,如果這些類繼承一同父類,那么他們的父類原型上的方法是可以共用的。而寄生方式創(chuàng)建的對象是一個新個體,所以他們的方法就不能共用了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,680評論 1 32
  • 工廠模式簡述 工廠模式,顧名思義,就是為了創(chuàng)造對象。 工廠模式類似于現(xiàn)實的工廠生產(chǎn)線,可以生產(chǎn)出大量類似的商品。 ...
    黃律AI法研室閱讀 512評論 0 0
  • 工廠模式類似于現(xiàn)實生活中的工廠可以產(chǎn)生大量相似的商品,去做同樣的事情,實現(xiàn)同樣的效果;這時候需要使用工廠模式。簡單...
    舟漁行舟閱讀 8,140評論 2 17
  • 設(shè)計模式基本原則 開放-封閉原則(OCP),是說軟件實體(類、模塊、函數(shù)等等)應(yīng)該可以拓展,但是不可修改。開-閉原...
    西山薄涼閱讀 4,086評論 3 14
  • 創(chuàng)建型模式 工廠模式 工廠模式(Factory Pattern)是 Java 中最常用的設(shè)計模式之一。這種類型的設(shè)...
    隔墻送來秋千影閱讀 2,822評論 0 11

友情鏈接更多精彩內(nèi)容