• 工厂模式


    解读:

    1、对象的构建十分复杂

    2、需要依赖具体的环境创建不同的实例

    3、处理大量具有相同属性的小对象

    代码

    1、工厂应该有厂长决定运输到底那条产品线

    2、消费者决定具体生产那条产品线即消费者决定子类

    var gongchang={

    };

    gongchang.changyifu=function(argument){

    this.gongren=50;

    alert('我们有'+this.gongren);

    },

    gongchang.chanxie=function(){

    alert('产鞋子')

    },

    gongchang.yunshu=function(){

    alert('运输')

    }

    gongchang.changzhang=function(para){

    //构造函数模式和单利模式

    return new gongchang[para]();

    }

    var me=gongchang.changzhang('chanyifu');

    简单模式

    这是一个简单工厂模式

    varXMLHttpFactory=function(){};

    XMLHttpFactory.createXMLHttp=function(){

    var XMLHttp=null;

    //XMLHttpFactory.creteXmlHttp()这个方法更具当前的环境情况范湖一个XHR对象

    if(window.XMLHttpRequest){

    XMLHttp=new XMLHttpRequest();

    }else{

    XMLHttp=new ActiveObject("Microsoft.XMLHTTP");

    return XMLHttp;

    }

    var AjaxHander=function(){

    var XmlHttp=XMLHttpFactiory.CreateXMLHttp();/*具体的操作*/

    }

    }

     抽象模式

    var XMLHttpFactory=function(){

    };

    XMLHttpFactory.prototype={

               createFActory:function(){//如果真的要调用这个方法会抛出一个错误,它不能被实例化,只能用来派生子类

                throw new Error("this is a abstract class");

             }

    }//派生子类

    var XMLHander=function(){

      XMLHttpFactory.call(this);

    }

    XMLHander.protptype=new XMLHttpFactory();

    XMLHander.prtotype.constructor=XXMLHander;//重新定义createFactory方法

    XMLHande.prototype.createFactory=function(){

        var XMLHttp=null;

      //XMLHttpFactory.creteXmlHttp()这个方法更具当前的环境情况范湖一个XHR对象

        if(window.XMLHttpRequest){

        XMLHttp=new XMLHttpRequest();

        }else{

        XMLHttp=new ActiveObject("Microsoft.XMLHTTP");

        return XMLHttp;

        }

    }

  • 相关阅读:
    CF1236B Alice and the List of Presents |数学
    luogu P1832 A+B Problem |背包
    CF832D Misha, Grisha and Underground |LCA
    bzoj1709[Usaco2007 Oct]Super Paintball超级弹珠*
    bzoj3314[Usaco2013 Nov]Crowded Cows*
    bzoj4300绝世好题
    bzoj2101[Usaco2010 Dec]Treasure Chest 藏宝箱*
    bzoj3437小P的牧场
    bzoj2016[Usaco2010]Chocolate Eating*
    bzoj2015[Usaco2010 Feb]Chocolate Giving*
  • 原文地址:https://www.cnblogs.com/Ting-log/p/9358030.html
Copyright © 2020-2023  润新知