飞雪连天射白鹿,笑书神侠倚碧鸳

0%

【23种设计模式】2简单工厂模式

描述:封装一个创建对象的类
优点:解耦,父类不需要知道子类细节
缺点:工厂职责重,扩展困难,违反开闭原则

应用:工厂负责创建个别对象


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);
听说,打赏我的人最后都找到了真爱
↘ 此处应有打赏 ↙
// 用户脚本