描述:封装一个创建对象的类
优点:解耦,父类不需要知道子类细节
缺点:工厂职责重,扩展困难,违反开闭原则
应用:工厂负责创建个别对象
classDiagram
class Product
<> Product
class ConcreteProduct1{
constructor()
}
class Factory {
+createProduct()$ Product
}
Factory --> ConcreteProduct1:依赖
ConcreteProduct1 ..|> Product:实现
- 产品接口
- 工厂类依赖产品实现类
- 工厂的实例创建产品
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| interface Product{}
class ConcreteProduct1 implements Product { constructor(){} }
class Factory { 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 = Factory.createProduct(1); console.log(product);
|