SuperAPI AI 工具集

implementation-functional-patterns

编程与开发

查看项目

更新于 10-16 03:46

技能介绍

本技能是 TypeScript 中函数式实现形态的参考手册,与 implementation-design-patterns 互补:类形态看后者,函数、标签联合或小型数据结构形态看本技能。TypeScript 具备一等函数、可辨识联合、结构化类型与闭包,因此以 Java/C# 为目标的 22 个 GoF 类层次可折叠为更少的函数式形态,例如标签联合覆盖 State、Visitor、Composite;工厂函数覆盖 Factory Method、Abstract Factory、Prototype、Memento;事件发射器覆盖 Mediator、Observer;包装函数覆盖 Adapter、Facade。

适用时机:重构 Factory 类层次、AbstractFactory、含 clone()/Memento 的类、私有构造 + 静态 getInstance 的 Singleton、多可选字段的 Builder、单方法变化的 Strategy/Template Method/Bridge、Chain of Responsibility、自定义 Iterator、Command、Adapter/Facade、Proxy、Flyweight 工厂、State/Visitor/Composite 类层次、Mediator/Observer 类,以及检视 TSX 内联 lambda 与命令式循环。

规则共 17 条,分 10 类:创建替代(create)、高阶函数(hof)、管道与组合(pipe)、流方法(stream)、包装器(wrap)、缓存与共享(cache)、模式匹配(match)、信号与事件发射器(signal)、放置与标识(place)、闭包即数据(closure)。示例包括以函数返回标签对象替代工厂类、模块级 const 单例、Object literal + Partial<T> 或流式不可变 builder、lambda 作策略、pipe 替代责任链、compose 替代装饰器、flatMap 替代嵌套循环、reduce/groupBy 替代累加循环、惰性迭代、单趟处理、包装函数代 Adapter/Facade、原生 Proxy 或 HOF、WeakMap 缓存代 Flyweight、可辨识联合加穷尽 match 代 State/Visitor/Composite、事件发射器代 Mediator/Observer、module-scope 纯转换函数、闭包作 Command。

使用方式:先按下手模式查 GoF→函数式映射表并阅读对应规则;每条规则均列出“何时不适用”的窄条件与性能权衡段落,说明时间、内存与分配成本。类形态在需要序列化、运行时注册/内省、带类型的模式间关系、跨切面状态、instanceof 稳定标识、生命周期所有权或框架集成时仍更合适。TSX 中的代码还需遵守 place 规则,lambda 放置位置决定 memo、useEffect 与 React Compiler 的行为。具体数值、版本与完整代码示例未在资料中给出。