//這隻是一個大概的演示了工廠模式的原理, //這個是Car的構造函數 function Car(){ this.type='car';//為Car定義了一個屬性type下麵要用 } //在Car的原型上添加了一個方法say用來輸出列印一句話 Car.prototype.say=function()... ...
<script type="text/javascript"> //這隻是一個大概的演示了工廠模式的原理, //這個是Car的構造函數 function Car(){ this.type='car';//為Car定義了一個屬性type下麵要用 } //在Car的原型上添加了一個方法say用來輸出列印一句話 Car.prototype.say=function(){ console.log("我是"+this.type); } //這個是Bike的構造函數 function Bike(){ this.type='bike';//為Bike定義了一個屬性type下麵要用 } //在Bike的原型上添加了一個方法say用來輸出列印一句話 Bike.prototype.say=function(){ console.log("我是"+this.type); } //這個是Motor的構造函數 function Motor(){ this.type="motor"; } //在Motor的原型上添加了一個方法say用來輸出列印一句話 Motor.prototype.say=function(){ console.log("我是"+this.type); } //上面的都是面向對象的基礎,平時我們調用上面的類時都是直接new比如要創建Car的實例 //var car=new Car(); //car.say() 列印出"我是car"; //重點來了 //其實工廠模式也和上面的原理一樣,不能說是原理一樣,總之道理很簡單, //就像一個超市,能為你提供各種的商品;如果你想買個東西了,最快的方法就是去超市,因為你知道,超市集結了很多的商品, //沒準就會有你想要的; var Factory={//Factory 就像那個超市 createP:function(product){//你去超市去查找商品 或者你問了服務員,讓她幫你找 var p=null; switch(product){ case "car": p=new Car();//創建Car的實例 break; case "bike": p=new Bike();//創建Bike的實例 break; case "motor": p=new Motor();//創建Motor的實例 break; default://如果沒有找到你想要的 就預設返回一個類的實例,當然也不是非得返回一個 p=new Car(); break; } return p;//返回創建的實例 } } var p=Factory.createP("motor");//調用工廠的createP方法 p.say();//列印出''我是motor" //總之工廠模式說到底也只是一種模式,代碼還是那些代碼,我們只是用了一種好的方式讓它們顯得有條理,