SuperAPI AI 工具集

j5ik2o-breach-encapsulation-naming

设计与创作

查看项目

更新于 10-15 22:39

技能介绍

用途:在设计和评审领域模型访问器时,处理为持久化、序列化、调试、测试或框架集成而必须暴露内部状态的情况。核心理念是让不可避免的状态暴露变得显眼,领域对象应优先表达行为。

主要能力与工作流:对每个请求的访问器按消费者分类,包括领域行为、持久化、序列化、测试、框架粘合与展示层;把领域行为访问替换为持有数据对象上的 Tell Don't Ask 方法;对无法避免的暴露使用 breachEncapsulationOfX() 或本地惯用命名(如 breach_encapsulation_of_x);暴露值保持不可变或做防御性拷贝;添加评审说明,解释容忍该破坏的原因及允许的调用方。

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

参考与限制:语言特定命名与迁移示例见 references/patterns.md;非平凡实现、评审或重构前应阅读 references/details.md。输出应包含访问器分类、建议命名、Tell Don't Ask 替换方案及最小迁移路径。具体收费、平台与效果资料暂未提供。