工廠模式是一個建立型的模式,主要就是建立對象。其中工廠模式又分爲簡單工廠模式和抽象工廠模式。簡單工廠模式是經過工廠方法肯定建立 對應類型的對象。抽象工廠模式是經過子類來實現,成員實例化推遲到子類中進行。工廠模式都擁有相同的接口。 this
工廠模式通常用於:建立類似對象時的重複操做,不知道對象類型提供建立對象的接口。下面咱們模式飛機大戰遊戲中的飛機類型進行工廠模式示例。 spa
工廠模式示例以下: prototype
/*構建飛機工廠(飛機大戰遊戲中的飛機)*/ var AirplaneFactory = function(){}; AirplaneFactory.prototype = { createAirplane:function(model){ var plan; switch(model){ case 'General': plan = new GeneralPlan(); break; case 'Boss': plan = new BossPlan(); break; } return plan; } } /*通常炮灰飛機*/ var GeneralPlan = function(){}; GeneralPlan.prototype = { name:'general paln', type:'general', getName:function(){ return this.name; }, getType:function(){ return this.type; } } /*BOSS 飛機*/ var BossPlan = function(){}; BossPlan.prototype = { name:'boss plan', type:'boss', getName:function(){ return this.name; }, getType:function(){ return this.type; } } /*經過工廠生成 相應的飛機*/ var myPlan = new AirplaneFactory().createAirplane('Boss'); console.log(myPlan.getName()); var myPlan2 = new AirplaneFactory().createAirplane('General'); console.log(myPlan2.getName());
在JavaScript中使用工廠模式的主要弱化了對象間的耦合,簡化更換或者選擇類,防止代碼的重複工做。 code