// 简单工厂模式
// 比如注册模块 登录模块可用该模式
// 篮球基类
var Basketball = function(){
this.intro = '篮球盛行于美国';
}
Basketball.prototype = {
getMember:function(){
console.log('每个队伍需要5名队员');
},
getBallSize:function(){
console.log('篮球很大');
}
}
// 足球基类
var Football = function(){
this.intro = '足球在世界范围类很流行';
}
Football.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 SportsFactory = function(name){
switch(name){
case 'NBA'://NBA则返回篮球
return new Basketball();
case 'wordCup'://世界杯返回足球
return new Football();
case 'FrenchOpen':
return new Tennis();
}
}
// 为世界杯创建一个足球,只需要记住运动工厂SportsFactory,调用并创建
var football = SportsFactory('wordCup');
console.log(football.intro);
football.getMember();
// 一个对象替代许多类
// 工厂模式
function createPop(type,text){
var o = new Object();
o.content = text;
o.show = function(){};
// if (type=='alert') {
// console.log(o.content);
// }
// if (type=='prompt') {
// console.log(o.content);
// }
// if (type=='confirm') {
// console.log(o.content);
// }
// 或者用switch方式
switch(type){
case 'alert':
alert(o.content);
break;
case 'prompt':
prompt(o.content);
break;
case 'confirm':
confirm(o.content);
break;
}
return o;
}
// 创建警示框
// var userAlert = createPop('alert','alert');
var userprompt = createPop('prompt','prompt1');