JS设计模式(一)

Javascript设计模式之创建型设计模式

设计模式是一种软件开发的思想,有益于降低代码的耦合性,增强代码的健壮性。往往在大型项目中用的比较多。

一. 简单工厂模式

简单工厂模式: 又叫静态工厂方法,由一个工厂对象决定创建某一种产品对象实例。主要用来创建同一类对象

/*方式一,对不同类实例化封装*/
    //创建提示框类
    var  LoginAlert  = function(text){
        this.content = text
    }
    
    LoginAlert.prototype.show = function(){
        //显示警示框
    }
    
    var userNameAlert = new LoginAlert('用户名不能多于16个字母或数字');
    userNameAlert.show();
    
    var passWordAlert = new LoginAlert('密码错误');
    passWordAlert.show();
    
    
    //创建确认框类
    var LoginConfirm = function(text){
        this.content = text
    }
    
    LoginConfirm.prototype = {
        show:function(){
            //弹出确认框(确认框是包含两个按钮的)
    
            },
        draw:function(){//绘制确认框
            
        }    
    }
    
    var loginSucess = new LoginConfim('欢迎回来');
    var loginFailed = new LoginConfim('登录失败');
    loginSucess.draw();
    loginSucess.show();
    loginFailed.show();
    
    //现在将两个类封装成一个简单工厂函数
    var PopFactory = function(name){
        switch(name){
            case 'alert'
                return new LoginAlert();
            case 'confirm'
                return new LoginConfirm();
        }
    }
    
    new PopFactory('alert');
    
    /*方式二,创建相似对象*/
    function CreatPop(type,text){
        var o = new Object();
        o.content = text;
        o.show = function(){
            //显示弹框
        }
        
        if(type == 'alert'){
            //
        }
        if(type == 'confirm'){
            //确认框
        }
        
        return o
    }
    
    var loginConfirm = new CreatPop('confirm','欢迎回来')

总结

第一种方式是通过实例化对象创建的,第二种是通过创建一个新对象然后包装增强其属性功能来实现的。他们之间的差异性也造成前面通过类创建的对象,如果这些类继承一同父类,那么他们的父类原型上的方法是可以共用的。而寄生方式创建的对象是一个新个体,所以他们的方法就不能共用了。

你可能感兴趣的:(JS设计模式(一))