---
name: ood-solid-design
scope:
  - backend
  - frontend
products:
  - '*'
id: ka-hard-rule-OOD与SOLID设计规则
type: governance_rule
asset_kind: governance_rule
lifecycle_status: active
authority: canonical
owner_mechanism_id: mc-ood-solid-contract
asset_role: required
consumed_by:
  - mc-ood-solid-contract
routes: ['code_change', 'artifact_generation']
primary_triggers:
  - 面向对象设计
  - SOLID
secondary_triggers:
  - 领域服务
  - 重构
  - 策略
negative_triggers:
  - 文案
  - 样式
priority: P1
specificity: 5
consumes:
  - mc-coding-readiness
hard_blocks:
  - ood_summary_missing
  - solid_hard_fail_unresolved
fallback: manual_required
required_evidence:
  - ood_design_summary
  - code_review_findings
version: 1.1.0
last_reviewed: '2026-06-01'
stages: ["*"]
---

## 编码前门禁

复杂业务逻辑、领域模型、服务边界、策略或重构任务在编码前必须给出：

- 对象及单一职责。
- 对外接口与依赖方向。
- 可变化点与扩展方式。
- SRP、OCP、LSP、ISP、DIP 风险及验证方式。

## 代码审查门禁

- Controller 不承担业务计算或持久化职责。
- 应用/领域服务依赖抽象端口，不直接构造基础设施依赖。
- 子类型不能拒绝父契约操作，接口不能迫使实现提供无效操作。
- 同一类型或状态的多处分支应判断是否需要策略扩展点。

硬失败未清零时，不得交付。简单文案或样式修改不强行引入对象设计。
