定義:由一個工廠對象決定建立某一正產品對象類的實例this
理解:一個工廠根據傳入的參數,動態的決定應該建立哪個產品的實例。spa
eg:(一個運動工廠)prototype
var SportFactory = function(name){ switch(name){ case "NBA": return new Basketball(); case "wordCup": return new Football(); case "FrenchOpen": return new Tennis(); } }
eg:(基類)code
//籃球基類 var Basketball = function(){ this.intro = '籃球盛行於美國'; } Basketball.prototype = { getNumber:function(){ console.log("每一個隊伍須要5名隊員"); } } //足球基類 var Football = function(){ this.intro = '足球在全世界都很流行'; } Football.prototype = { getNumber:function(){ console.log("每一個隊伍須要11名隊員"); } } //網球基類 var Tennis = function(){ this.intro = '每一年都有不少網球系列賽'; } Tennis.prototype = { getNumber:function(){ console.log("每一個隊伍須要1名隊員"); } }
缺點:簡單工廠類集中了因此對象的實例化,當系統中的產品類不斷的增長,須要修改工廠類,而且增長判斷條件,不利於系統的維護和擴展,只適用於建立少許類的狀況下對象