笔记 E:分析建模:类、流动与行为

Architect's Note (架构师按): 分析建模的本质是降维与解耦。面对复杂的业务系统,如果我们直接让 AI 开始写代码,最终一定会得到一个高度耦合的“泥石流(Big ball of mud)”系统。通过类(静态结构)、流动(数据与控制的穿梭)和行为(动态响应)的拆解,我们实质上是在为 AI 划定清晰的系统边界和认知上下文

模块一:基于类的建模 (Class-based Modeling) 与 CRC 思维

基于类的建模是通过将业务场景中的实体抽象为对象,来定义系统的静态结构。通常可以通过对用例文本进行“语法解析(Grammatical parse)”来识别类:名词往往是类(Classes),动词则是操作(Operations)。

模块二:流动建模 (Flow-oriented Modeling)

流动建模描述了数据和控制指令如何在系统的各个处理元素之间穿梭。它通常通过活动图(Activity Diagram)来表现并发与控制流,或通过管道-过滤器(Pipe-and-Filter)架构来表现数据的转换传递。

模块三:行为建模 (Behavioral Modeling)

行为模型(Behavioral Model)揭示了系统如何响应内部或外部的事件(Events)或刺激。


特别模块:面向 AI 的 CRC 协作描述模板

为了避免 Cursor 生成高耦合的“上帝类”,我们可以将传统的 CRC 卡片理念转化为以下 Markdown Prompt 模板,直接用于 AI 辅助编程:

# [Class Definition]: PaymentProcessor (支付处理器)

## 1. Class Purpose (类目标)
本类的唯一目标是处理用户订单的支付状态流转。请严格遵循“单一职责原则 (SRP)”。

## 2. Responsibilities (自身职责 - 必须自己实现)
- 接收前端传来的支付请求与金额。
- 校验支付金额是否大于 0。
- 更新本地数据库中的支付流水状态 (Pending -> Success/Failed)。

## 3. Collaborators (协作者 - 严禁自己实现,必须调用以下协作者)
在实现上述职责时,如果遇到以下需求,**请勿在当前类中编写具体逻辑**,而是通过依赖注入 (DI) 调用相应的协作者接口:
- **[Collaborator 1]: `RiskControlService`**
  - **交互时机**:在发起第三方支付前。
  - **目的**:传递 UserID,检查是否为风险交易。
- **[Collaborator 2]: `StripeGateway`**
  - **交互时机**:金额校验通过且风控通过后。
  - **目的**:将金额和币种发给第三方网关,获取支付结果。

## 4. State Transitions (行为与状态约束 - 参照 State Diagram)
执行支付时,状态必须遵循以下流转(携带 Guard 守卫条件):
- `INIT` -> (Event: request_pay) -> `VALIDATING`
- `VALIDATING` -> (Guard: risk_score < 90) -> `PROCESSING`
- `VALIDATING` -> (Guard: risk_score >= 90) -> `BLOCKED`

## 要求:
请基于以上 CRC 职责边界和状态转换逻辑,为我生成 `PaymentProcessor` 的代码。

架构师寄语:通过这张“AI 版的 CRC 卡片”,你实际上是在告诉大模型:“别自作聪明把风控和第三方支付的逻辑全塞进这个类里。” 这是保证 AI 生成代码优雅、可测试、低耦合的绝佳实践。


下一章:software-02-F:设计工程与体系结构
首页:Software Engineering MOC