1、Factory基本写法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>简单工厂模式之一个对象有时候可以代替许多类</title>
<script type="text/javascript">
//简单工厂模式之一个对象有时候可以代替许多类
//工厂模式
function createBook(name,time,type){
//封装一个对象,并对该对象拓展其属性和方法
var o = new Object();
//var o = {};
o.name = name;
o.time = time;
o.type = type;
o.getName = function(){
console.log(this.name);//this指向当前对象o
}
return o;//将对象o返回出去
}
//测试用例
var jsbook = createBook('js book',2015,'js');
var cssbook = createBook('css book',2014,'css');
jsbook.getName();
cssbook.getName();
//本例已经通过验证
</script>
</head>
<body>
</body>
</html>
2、Factory差异性写法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>简单工厂模式之差异化写法——三种弹窗效果封装</title>
<script type="text/javascript">
//简单工厂模式之差异化写法——三种弹窗效果封装
//工厂模式
function createPop(type,text){
//封装一个对象,并对该对象拓展其属性和方法
var o = {};
o.text = text;
o.show = function(){
console.log(this.text);//this指向当前对象o
//show显示方法代码
}
if(type == 'alert'){
alert(o.text);
}else if(type == 'prompt'){
prompt('提示',o.text);
}else if(type == 'confirm'){
confirm(o.text);
}
return o;//将对象o返回出去
}
//测试用例
var userNameTip = createPop('confirm','用户名只能是12位以内字母下划线和数字组成');//创建即弹出
userNameTip.show();
//本例已经通过验证
</script>
</head>
<body>
</body>
</html>