工厂模式

// 简单工厂模式 
// 比如注册模块  登录模块可用该模式

// 篮球基类
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');

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值