zoukankan      html  css  js  c++  java
  • 工厂模式

    解读:

    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;

        }

    }

  • 相关阅读:
    正则表达式语法介绍
    关系型数据库和非关系型数据库的简单对比
    lambda函数
    java基础系列--Exception异常处理
    springBoot基础系列--properties配置
    spring基础系列--JavaConfig配置
    java基础系列--Calendar类
    java基础系列--Date类
    一个特殊的List去重问题的解决方案
    Java学习笔记
  • 原文地址:https://www.cnblogs.com/Ting-log/p/9358030.html
Copyright © 2011-2022 走看看