发布于 2026-01-06 4 阅读
0

TypeScript 工厂设计模式实践(UML)AWS AI LIVE!

TypeScript 工厂设计模式实践(UML)

AWS AI 直播!

开发者们好!

设计模式帮助我们构建更优秀的软件,从而为新问题设计解决方案。例如,由四位开发者组成的“设计模式”团队撰写了《设计模式》一书,向我们展示了在创建型、结构型或行为型面向对象编程环境中解决问题的设计方法。

让我们来看看如何在 TypeScript 中使用工厂模式,但它究竟是什么呢?

工厂模式是创建型设计模式之一。当我们需要在不向客户端暴露创建逻辑的情况下创建对象,并通过公共接口引用新创建的对象时,就应该使用工厂模式。例如,我们有一个包含多个子类的超类,根据输入,我们需要返回其中一个子类。

我们可以在 UML(统一建模语言)中看到这种模式的表示。

工厂设计模式 UML

让我们构建一个 UML 示例,并使用 Typescript 进行实践观察。

工厂设计模式 UML



export interface IPerson {
    name: string;
    identifier(): void;
}


Enter fullscreen mode Exit fullscreen mode

然后实施:



export class NaturalPerson implements IPerson {
    name: string

    constructor() { this.name = '' }

    identifier() {
        return "Identifier of NaturalPerson";
    }
}

export class LegalPerson implements IPerson {
    name: string

    constructor() { this.name = '' }

    identifier() {
        return "Identifier of LegalPerson";
    }
}


Enter fullscreen mode Exit fullscreen mode

然后是我们的工厂,其中包含一个静态方法:



export class PersonFactory {
    public static createPerson(type: string) : IPerson {
        if (type === "N") {
            return new NaturalPerson();
        } else if (type === "L") {
            return new LegalPerson();
        }

        return null as unknown as IPerson;
    }
}




Enter fullscreen mode Exit fullscreen mode

现在我们来看看它的用法。假设我们有一个名为 person 的文件夹,其中包含 IPerson 和 PersonFactory 类,而 Main 类位于该文件夹之外。



import { IPerson, PersonFactory } from "./person";

export class Main {
    main(){
      const naturalPerson: IPerson = PersonFactory.createPerson("N");
      const legalPerson: IPerson = PersonFactory.createPerson("L");
    }
}



Enter fullscreen mode Exit fullscreen mode

就这些!我们在 TypeScript 中实现了一个工厂设计模式,并查看了它的 UML 表示。

https://www.buymeacoffee.com/calaca

联系方式
:邮箱:luizcalaca@gmail.com
Instagram:https://www.instagram.com/luizcalaca
LinkedIn:https: //www.linkedin.com/in/luizcalaca/
Twitter: https: //twitter.com/luizcalaca

文章来源:https://dev.to/luizcalaca/typescript-factory-design-pattern-in-practice-uml-6g9