简单工厂模式,又叫静态工厂方法,由一个工厂对象决定创建一种产品对象类的实例,只要用来创建同一类对象。
使用情况,有很多类的时候,每次创建实例对象还要找到相应的类,太麻烦,将这些类封装在一个函数里,这样只需要记住这个函数,通过这个函数就可以创建我需要的对象,不用再关注创建这些对象到底依赖于哪个基类(通过工厂函数传入一个字段,使用switch区分,分别完成创建实例的操作)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>简单工厂模式</title>
<script>
window.onload=function(){
var basketball=function(){
this.info="篮球盛行于美国";
}
basketball.prototype={
getMember:function(){
console.log("5个人");
},
getBallSize:function(){
console.log("大");
}
}
var football=function(){
this.info="足球盛行于巴西";
}
football.prototype={
getMember:function(){
console.log("11个人");
},
getBallSize:function(){
console.log("小");
}
}
var ballFactor=function(name){//在工厂类中通过传入的name分别进行相应的实例化对象操作
switch(name){
case "basketball":
return new basketball();
case "football":
return new football();
}
}
var test=new ballFactor("basketball");//可以直接操作test
console.log(test);
console.log(test.info);
test.getMember();
}
</script>
</head>
<body>
<p>按F12打开调试界面</p>
</body>
</html>