工厂模式相当于有一个工厂类,专门生产对象的,你告诉工厂需要生产什么样的对象,它就按照你的需求生产出什么样的对象,而不是自己每次去实例化对象。
一、代码示例
//定义汽车的类型
enum CarType {
Bmw,
Benz,
Audi
}
//定义汽车协议
interface ICar{
name:string;
run():void;
}
//宝马类
class Bmw implements ICar{
name:string = '宝马'
run() {
console.log(this.name + '开车啦')
}
}
//奔驰类
class Benz implements ICar{
name:string = '奔驰'
run() {
console.log(this.name + '开车啦')
}
}
//奥迪类
class Audi implements ICar {
name:string = '奥迪'
run() {
console.log(this.name + '开车啦')
}
}
//汽车工厂
class CarFactory{
//工厂方法
static createCar(carType:CarType):ICar {
let car:ICar;
switch(carType) {
case CarType.Bmw:
car = new Bmw();
break;
case CarType.Benz:
car = new Benz();
break;
case CarType.Audi:
car = new Audi();
break;
}
return car
}
}
//造一辆宝马
let car1 = CarFactory.createCar(CarType.Bmw)
//开车
car1.run();
//造一辆奔驰
let car2 = CarFactory.createCar(CarType.Benz)
//开车
car2.run();
网友评论