<body>
<script>
// 工厂模式丑陋版
// 各种商品的价格
function Steak(){
this.price = 30
this.time = 10
}
function Apple(){
this.price = 30
this.time = 10
}
function Pear(){
this.price = 30
this.time = 10
}
// 要得到哪个价格
let a = new Steak()
let b = new Apple()
let c = new Pear()
// 工厂模式简单版
function getFruit(name){
let data = null;
switch(name){
case 'Steak':
data = new Steak()
break;
case 'Apple':
data = new Apple()
break;
case 'Pear':
data = new Pear()
break;
}
return data
}
console.log(getFruit('Steak'))
// 好处: 比如我们手机软件进行归类,这样就比较快速的找到软件
// 缺点: 扩展性不好 比如要再加一个水果 就得再一个构造函数 switch 再一个case
// 原型工场模式
function Shop(name){
return this[name]()
}
Shop.prototype = {
Steak(){
this.price = 30
this.time = 10
},
Apple(){
this.price = 30
this.time = 10
},
Pear(){
this.price = 30
this.time = 10
},
// 好处易扩展 比如要加一个桔子直接这里加
orange(){
this.price = 15
this.time = 8
}
}
let pear = new Shop('Pear')
console.log(pear)
</script>
</body>
网友评论