您的位置:首页 > Web前端 > JavaScript

javascript设计模式:简单工厂模式

2017-03-13 21:21 501 查看
//篮球基类
var Basketball= function () {
this.intro="篮球盛行于美国";
}
Basketball.prototype={
getMember:function(){
console.log("每个队伍需要5名队员");
},
getBallSize: function () {
console.log("篮球很大")
}
}

//足球基类
var Foottball= function () {
this.intro="足球在全世界范围内流行";
}
Foottball.prototype={
getMember:function(){
console.log("每个队伍需要11名队员");
},
getBallSize: function () {
console.log("篮球很大")
}
}

//网球基类
var Tennis= function () {
this.intro="每年有好多网球比赛";
}
Tennis.prototype={
getMember:function(){
console.log("每个队伍需要1名队员");
},
getBallSize: function () {
console.log("网球很小")
}
}

var SportFactory=function(name){
switch (name){
case "NBA":return new Basketball();
case "wordCup":return new Foottball();
case "FrenchOpen":return new Tennis();
}
}

var football=SportFactory("wordCup");
console.log(football);
console.log(football.intro);
football.getMember();


简单工厂的理念是创建对象,以上的方式是对不同的类实例化。

除此之外,简单工厂模式还可以用来创建相似对象。

function createBook(name,time,type){
var o =new Object();
o.name=name;
o.time=time;
o.getTime=function(){
console.log(this.name);
}
if(type=="言情书"){
//言情书归类
}
if(type=="玄幻书"){
//玄幻书归类
}
if(type=="小说"){
//小说归类
}
return o;
}

var newbook=createBook("解忧杂货铺","2015","小说");


总结:第一种通过实例化对象创建,通过此方法创建的对象,如果这些对象继承同一父类,那么他们的父类原型上的方法可以共用。

第二种通过创建一个新对象然后包装增强其属性和功能实现的。对象通过寄生方式创建,每个对象都是一个新个体,方法不可共用,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  工厂模式 javascript