Skip to content
返回 AI 编程

类生成模式

从职责 + 不变量生成类;偏好组合而非继承。

代码生成进阶

为什么

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 上搜索真实示例;先在小实验仓库验证模式,再应用到生产代码。