js设计模式3-抽象工厂模式
程序员文章站
2022-05-23 19:41:18
...
这里要多实现一个超级工厂,常见不同的工厂,然后再创建实体,相比工厂模式,继承上要多了一个抽象类的继承
class Football {
round () {
console.log('我是脚踢的')
}
}
class Basketball {
round () {
console.log("我是手打的")
}
}
class Bycle {
round () {
console.log("我是用来骑得")
}
}
class Car {
round () {
console.log("我是用来开的")
}
}
//抽象类
class SuperClass {
getCar () {
throw new Error("必须创建改方法")
}
getBall () {
throw new Error("必须创建改方法")
}
}
//实现工厂
class Mincar extends SuperClass {
getCar (car) {
car = car.toLocaleLowerCase();
switch (car) {
case 'bycle':
return new Bycle();
case 'car':
return new Car();
default:
break;
}
}
getball () {
return null;
}
}
class Ball extends SuperClass {
getball (ball) {
this.ball = ball.toLocaleLowerCase();
switch (ball) {
case 'football':
return new Football();
case 'basketball':
return new Basketball();
default:
break;
}
}
getCar () {
return null;
}
}
//实现超级类
class Factory {
constructor(type) {
this.types = type.toLocaleLowerCase();
switch (type) {
case 'ball':
return new Ball();
case 'car':
return new Mincar();
default:
break;
}
}
}
//实现方式
//创建工厂
const carFac = new Factory('car');
const c1 = carFac.getCar('car');
const c2 = carFac.getCar('Bycle');
c1.round()
c2.round()
我是用来开的
我是用来骑得
上一篇: 在丈母娘家吃饭
下一篇: Spring注解大全