首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

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

2012-09-02 
javascript设计模式简单介绍之【工厂模式】工厂模式分为两种,一种是简单工厂模式。另一种称之为工厂模式。简单

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也变得容易。好了,简单工厂模式到此也就结束了。

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

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

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

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

热点排行