• javascript设计模式简单介绍之【工厂模式】


    工厂模式分为两种,一种是简单工厂模式。另一种称之为工厂模式。

    简单工厂模式是使用一个外部的单体或者静态方法来生成实例。

    而工厂模式使用子类来决定内部成员要实现那个具体的类的实例。

    工厂模式要求被具体实现的类,必须提供相同的接口。

    下面我们将通过一段代码来讲述一个简单工厂模式的实现。

    function myMode(){
    
    }
    myMode.prototype = {
      create:function(){
        var mode = createmode.create(mode);
        mode.xxx();//可以对返回的mode执行任何你想要的操作
        return mode;
      }
    }
    
    var createdmode = (function(){  //一个单例
      return {
        creaet:function(mode){       var tmpMode;       switch(mode){         case 'mode1':           tmpMode = new mode1();           break;         case 'mode2':           tmpMode = new mode2();           break;         default:           tmpMode = new defamode();           break;       }       checkMode(mode,[xxx,xxx,xxx,xxx,xxx]);//checkMode的作用是检查mode是否实现了后面的[xxx]方法,如果没实现将抛出异常       return tpmMode;     }
      } })();
    function checkMode(obj,methods){   if(!(typeof obj == 'object')){     throw new Error("error");   }   for(var i=0,len=methods.length;i<len;i++){     var method = methods[i];     if(!obj[method] || typeof object[method] !== 'function'){       throw new Error('error');     }   } }

    通过上面的代码,便实现了简单工厂模式。首先我们有一个myMode,他有一个create方法,这个方法将返回一个mode。

    这个mode可以是任何对象。因为它是由一个外部单例所创造返回的mode。如果你想改变它,可以在外部单例里加入更多的case。

    只要它实现了规定的接口,那么它就是符合的工厂模式的。是可以被myMode直接使用的。这一样以来,就可以把所有的mode集中在一起管理。

    想要添加或者更改mode也变得容易。好了,简单工厂模式到此也就结束了。

    下面是今天在某个群讨论时,看到的一段对工厂模式的描述的比较好的话。便顺手摘抄了下来

    "后宫三千佳丽等待侍寝,大家都有名牌,一个太监把牌子拿上来,皇上翻,翻中一牌子给太监,太监去调这个女人(也许是男人),这个太监就相当于工厂,皇上给他参数,他根据参数去调用,但具体侍寝的事由后宫去实现,有的KJ,有的是XT,有的是TJ,有的是GJ,有的是XJ,各不相同"

    不要问我那些字母代表什么意思,我想大家都懂的~~~~

    不好意思,刚刚创建单例那里有点错误,已修正。

  • 相关阅读:
    apache 修改文件上传大小限制
    linux 桥接模式下 固定ip 设置
    简易 红包生成
    Sublime Text 3 快捷键
    excle 文件的导入和导出
    php 下载文件
    右则css 小浮条
    html 自动跳转页面
    Media Queries详细
    mobile响应式页面meta信息相关记录
  • 原文地址:https://www.cnblogs.com/lynxcat/p/2442691.html
Copyright © 2020-2023  润新知