抽象工厂模式
抽象工厂(抽象工厂类):它是所有具体工厂的父类,声明了创建一个产品族的方法,并由其子类去实现。抽象工厂也可以声明成接口。
我们用一个具体的例子说明:
// A 产品的抽象abstract class AbstractProductA {abstract methodA(): void;}// B 产品的抽象abstract class AbstractProductB {abstract methodB(): void;}// 抽象工厂,声明了创造 A 产品和 B 产品的抽象方法abstract class AbstractFactory {abstract createProductA(): AbstractProductA;abstract createProductB(): AbstractProductB;}// A 产品class ProductA extends AbstractProductA {constructor(value: String) {super();console.log(value);}methodA(): void { }}// B 产品class ProductB extends AbstractProductB {constructor(value: String) {super();console.log(value);}methodB(): void { }}// 深圳工厂,能够生产 A B 两个产品,同时告知产地是深圳class ShenzhenFactory extends AbstractFactory {createProductA(): ProductA {return new ProductA('ProductA made in Shenzhen');}createProductB(): ProductB {return new ProductB('ProductB made in Shenzhen');}}// 上海工厂,能够生产 A B 两个产品,同时告知产地是上海class ShanghaiFactory extends AbstractFactory {createProductA(): ProductA {return new ProductA('ProductA made in Shanghai');}createProductB(): ProductB {return new ProductB('ProductB made in Shanghai');}}
