类生成模式
从职责 + 不变量生成类;偏好组合而非继承。
代码生成进阶
为什么
GitHub 2024 Octoverse 报告显示生成式 AI 项目贡献量激增 59%,平台 AI 项目总数增长 98%。无不变量生成的类易泄漏状态并混关注点。
预先声明职责与不变量产生内聚类,有清晰公共 API 与封装状态。
何时使用
有状态模块(仓库、服务、状态机)用此。纯函数跳过。
如何做
1. 列职责(每类单一职责)。
2. 声明不变量("count >= 0"、"id 设一次")。
3. 体前定义公共 API(方法 + 类型)。
4. 提示:"实现;状态私有;强制不变量"。
5. 每公共方法 + 不变量生成测试。
示例
class Cart {
// 职责:增删商品、算总价。
// 不变量:quantity > 0;无重复 productId。
// 公共:add(product, qty)、remove(productId)、total(): Money
private items = new Map<string, { product: Product; qty: number }>();
add(p: Product, qty: number) { /* 强制 qty > 0,合并重复 */ }
total(): Money { /* 求 price * qty 和 */ }
}
提示:"实现;items 私有;每方法强制不变量。"
常见问题
- ⚠生成代码编译失败:"SyntaxError: Unexpected token" → 要求模型输出含正确 import 的完整文件;用 `npx tsc --noEmit` 验证。
- ⚠错误:幻觉 API:模型调用不存在的函数 → 对照真实库文档检查并在 package.json 锁定版本。
- ⚠Error: Cannot find module 'xxx' → `npm install xxx`;生成代码常导入项目尚未安装的包。
最佳实践
- ✓体前声明职责与不变量。
- ✓状态私有;仅暴露公共 API。
- ✓用具体指标衡量结果(节省时间、缺陷率、测试覆盖率),使实践可被论证和改进。
常见问题解答
什么是类生成模式?
从职责 + 不变量生成类;偏好组合而非继承。 它可帮助开发者快速理解 类生成模式 的核心价值与适用场景。
如何开始使用类生成模式?
开始使用 类生成模式,建议先掌握以下要点:列职责(每类单一职责)。
类生成模式 的常见误区有哪些?
使用 类生成模式 时常遇到的问题包括:生成代码编译失败:"SyntaxError: Unexpected token" → 要求模型输出含正确 import 的完整文件;用 `npx tsc --noEmit` 验证。;错误:幻觉 API:模型调用不存在的函数 → 对照真实库文档检查并在 package.json 锁定版本。;Error: Cannot find module 'xxx' → `npm install xxx`;生成代码常导入项目尚未安装的包。。
类生成模式 的最佳实践是什么?
类生成模式 的最佳实践包括:体前声明职责与不变量。;状态私有;仅暴露公共 API。;用具体指标衡量结果(节省时间、缺陷率、测试覆盖率),使实践可被论证和改进。。
如何深入学习类生成模式?
从官方文档入手,再在 GitHub 上搜索真实示例;先在小实验仓库验证模式,再应用到生产代码。