<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>
工厂模式
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 说明:在我理解中,这里所谓的抽象,其实就是制定某一个接口规范。具体体现在代码里,就是设置一个基类,基类遵守某一套接...
- 先开个小头,明天写出来,不逼着自己是不会干活的。 题外话: 首先,设计模式是什么,为什么要用设计模式,设计模式用来...
- 哲学上说“是什么,为什么,怎么用”是认识问题的逻辑思维过程. 本文将以厂长工厂造车为例子讲述这三种设计模式。 简单...