Javascript之设计模式

1.单例模式

<script>

    //1.独立的对象建2个  xiaowang xiaoli
    //2.让xiaoli跟xiaowang通过门铃进行通信
    //3.先看一下xiaowang家有没有门 如果有们直接通过门铃通讯didi 如何没有先建门
    //4.两个单例之间开始通信
    var xiaowang = (function(argument){
        var xiaowangjia = function(message){
            this.menling = message;
        }
        var men;
        var info = {
            sendMessage:function(message){
                if(!men){
                    men = new xiaowangjia(message);
                };
                return men;
            }
        };
        return info;
    })();

    var xiaoli = {
        callXiaowang:function(msg){
            var _xw = xiaowang.sendMessage(msg);
            alert(_xw.menling);
        }
    };

    xiaoli.callXiaowang('didi');

</script>


2.构造函数模式

<script>
    //构造函数用于创建特定类型的对象
    //在js里构造函数也充当了类的概念,需要new
    //this instanceof setMen this如果不指向父类就new.也可以使用var xiaoming = new setMen()代替
    function setMen(huamen){
        if (!(this instanceof setMen)){
            return new setMen();
        }
        this.suo = "普通";
        var _huamen = "花纹";
        if(huamen){
            _huamen = huamen;
        }
        this.huamen = _huamen;
        this.create = function() {
            return this.suo + this.huamen;
        }
    }

    //var xiaoming = setMen();
    var xiaoming =  setMen("sss");
    alert(xiaoming.create());
</script>


3.工厂模式

<script>
    //简单工厂:封装好函数.外部不需要理会业务逻辑,外部只需要调用该函数,函数内部处理好业务逻辑.
    //抽象工厂:子类继承父类,读取父类接口

    var factory = {};
    factory.setClothe = function(){
        this.worker = 50;
        alert(this.worker);
    }
    factory.setShop = function(){
        alert("产鞋子~");
    }
    factory.setTransport = function(){
        alert("运输");
    }
    factory.factoryer = function(para){
        return new factory[para]();
    }

    var me = factory.factoryer("setShop");
    
</script>


你可能感兴趣的:(Javascript之设计模式)