3.第二篇:創(chuàng)建型設(shè)計(jì)模式

本文摘自 《JavaScript 設(shè)計(jì)模式》張容銘 著 版權(quán)歸原作者所有

第3章 簡(jiǎn)單工廠模式

// 籃球基數(shù)
var Basketball = function(){
  this.intro = '籃球盛行于美國(guó)'
}
Basketball.prototype = {
   getMember : function(){
    console.log('每個(gè)隊(duì)伍需要5名隊(duì)員');
  },
  getBallSize : function(){
    console.log('籃球很大')
  }
}

// 足球基類
var Football = function(){
  this.intro = '足球在世界范圍內(nèi)很流行';
}
Football.prototype = {
   getMember : function(){
    console.log('每個(gè)隊(duì)伍需要11名隊(duì)員');
  },
  getBallSize : function(){
    console.log('足球很大')
  }
}
// 網(wǎng)球基類
var Tennis = function(){
   this.intro = '每年有很多網(wǎng)球系列賽';
}
Tennis..prototype = {
   getMember : function(){
    console.log('每個(gè)隊(duì)伍需要1名隊(duì)員');
  },
  getBallSize : function(){
    console.log('網(wǎng)球很小')
  }
}

// 運(yùn)動(dòng)工廠
var SportsFactory = function(name){
  switch(name){
    case 'NBA':
      return new Basketball();
    case 'wordCup':
      return new Football();
    case 'FrenchOpen':
      return new Tennis();
  }
}
var foot = SportsFactory('wordCup');
console.log(foot);
console.log(foot.intro);
console.log(foot.getMember())

一個(gè)對(duì)象有時(shí)也可代替許多類

function createBook(name,time,type){
  // 創(chuàng)建一個(gè)對(duì)象,并對(duì)對(duì)象拓展屬性和方法
  var o = new Object();
  o.name = name;
  o.time = time;
  o.type = type;
  o.getName = function(){
    console.log(this.name);
  }
return o;// 將對(duì)象返回
}
var book1 = createBook('js book','2014','js');
var book2 = createBook('css book','2013','css');
book1.getName();
book2.getName();
function createPop(type,text){
  // 創(chuàng)建一個(gè)對(duì)象,并對(duì)對(duì)象拓展屬性和方法
  var o = new Object();
  o.content = text;
  o.show = function(){
    // 顯示方法
  }
  if(type == 'alert'){
    // 警示框差異部分
  }  
  if(type == 'prompt'){
    // 提示框差異部分
   }    
  return o;
}

var userNameAlert = createPop('alert','用戶名只能是26個(gè)字母')
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,027評(píng)論 25 709
  • 用兩張圖告訴你,為什么你的 App 會(huì)卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 13,987評(píng)論 2 59
  • 舊作《言不及愛》完結(jié)半年后,承蒙各位喜愛,多月依舊占據(jù)文學(xué)榜前五位,點(diǎn)擊量逾五百萬(wàn)。也許天涯文學(xué)的讀者們依舊久久忘...
    Coco陶閱讀 759評(píng)論 0 1
  • 微微的清涼悄悄地吹進(jìn), 不知不覺天色變暗, 青花茶香悠悠蕩蕩著也飄逸滿屋。 樓下幾個(gè)孩子嘻嘻鬧鬧著好似熱鬧, 大人...
    無(wú)塵小老閱讀 120評(píng)論 0 2

友情鏈接更多精彩內(nèi)容