定义
优缺点
优点
客户类与具体子类解耦;客户类不需要知道所有子类细节
缺点
工厂类职责过重;增加工厂类增加了系统的复杂度;系统扩展困难(会修改工厂逻辑)
应用场景
角色
SimpleFactory:简单工厂类
Product:抽象产品类
ConcreteProduct:具体产品类
类图

代码
// 抽象产品接口interface Product{}// 具体产品一class ConcreteProduct1 implements Product {constructor(){}}// 具体产品二class ConcreteProduct2 implements Product {constructor(){}}// 简单工厂class SimpleFactory {public static createProduct(type : number) : Product {let product = null;if (type === 1) {product = new ConcreteProduct1();} else if ( type === 2) {product = new ConcreteProduct2();}return product;}}// 使用let product = SimpleFactory.createProduct(1);console.log(product);
