TypeScript 工厂设计模式实践(UML)
AWS AI 直播!
开发者们好!
设计模式帮助我们构建更优秀的软件,从而为新问题设计解决方案。例如,由四位开发者组成的“设计模式”团队撰写了《设计模式》一书,向我们展示了在创建型、结构型或行为型面向对象编程环境中解决问题的设计方法。
让我们来看看如何在 TypeScript 中使用工厂模式,但它究竟是什么呢?
工厂模式是创建型设计模式之一。当我们需要在不向客户端暴露创建逻辑的情况下创建对象,并通过公共接口引用新创建的对象时,就应该使用工厂模式。例如,我们有一个包含多个子类的超类,根据输入,我们需要返回其中一个子类。
我们可以在 UML(统一建模语言)中看到这种模式的表示。
让我们构建一个 UML 示例,并使用 Typescript 进行实践观察。
export interface IPerson {
name: string;
identifier(): void;
}
然后实施:
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";
}
}
然后是我们的工厂,其中包含一个静态方法:
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;
}
}
现在我们来看看它的用法。假设我们有一个名为 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");
}
}
就这些!我们在 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

