SuperAPI AI 工具集

breach-encapsulation-naming

设计与创作

查看项目

更新于 10-16 09:56

技能介绍

用途:在设计或评审领域模型中暴露内部状态的访问器时使用,适用于持久化、序列化、调试或测试、框架集成等场景,核心是让不可避免的状态暴露保持醒目。

主要能力:按消费者对访问器分类,包括领域行为、持久化、序列化、测试、框架胶水、表现层;对领域行为访问,建议改为由持有数据的对象提供 Tell Don't Ask 方法;对无法避免的暴露,使用 breachEncapsulationOfX() 或当地惯用等价写法如 breach_encapsulation_of_x;暴露值应保持不可变或防御性复制;并添加评审说明,解释为何容忍该破坏及哪些调用方可用。

评审检查:实体与聚合上的普通 getter 需要理由;被领域逻辑使用的访问器属于设计异味,应把决策移到模型中;框架要求的访问应隔离在适配器、序列化器、映射器或仓储胶水中;测试可使用破坏性访问器,但断言仍应优先可观察行为。

使用方式:按工作流分类访问器、替换领域行为访问、为不可避免暴露采用命名约定、保持值不可变、添加评审说明;输出访问器分类、建议名称、Tell Don't Ask 替代方案与最小迁移路径。

限制:面向对象设计约定,不涉及具体语言实现的强约束;详细规则、示例与迁移说明需查阅 references/patterns.md 和 references/details.md,本次资料未提供其具体内容。