SuperAPI AI 工具集

structural-design-principles

设计与创作

查看项目

更新于 10-16 02:29

技能介绍

用途:这是一份关于代码结构设计原则的技能说明,原则源自面向对象设计,但被表述为适用于任意编程范式,核心目标是管理依赖、降低耦合、维持清晰边界。

主要能力:围绕四条原则展开。一是组合优于继承,优先组合简单行为而非扩展基类,因为继承会造成紧耦合和脆弱层级;Elixir 以模块导入、管道操作符、结构体嵌入、行为协议实现组合,TypeScript/React 以接口、hooks、函数组合替代类层级。二是迪米特法则(最少知识原则),模块只与直接伙伴交互,不穿透多层对象(如 engagement.worker.address.city 这类“火车残骸”),通过包装/委托方法暴露所需数据;文中指出去链式调用多为坏味道,但为链式设计的流式接口(如 Elixir 的 Ecto changeset、Ecto.Query)属例外。三是告诉而非询问,把行为放到拥有数据类型的模块或对象中,让调用方下达命令而非取出数据自行判断,例如用 Assignment.confirm/1 取代外部读取状态字段后决定。四是封装,隐藏内部实现、只暴露最小稳定接口,Elixir 借助私有函数、@opaque 类型、模式匹配与 changeset,TypeScript 借助私有字段与控制状态的公开方法。

使用方式与适用场景:作为设计评审与重构时的检查清单,适用于模块与组件设计、命令处理器、GraphQL 片段设计等场景;文中提供 Elixir 与 TypeScript/React 的正反示例代码作对照。

限制:材料未提供收费、价格、安装命令或具体平台信息;四条原则的具体规则以文中示例为准,未给出除此之外的量化标准或工具配置。