首页/开发/系统分析与架构设计速查/信息隐藏(Information Hiding)
架构风格与模式58 条

信息隐藏(Information Hiding)

Parnas 提出:模块划分应隐藏“可能变化的决策”,接口只暴露稳定信息;与按处理步骤划分相比,更利于应对变化与独立开发。

划分依据哪些决策可能变化(存储格式、算法、外部系统)
暴露内容稳定的抽象与契约,不暴露实现细节
收益局部修改不影响其他模块,支持并行开发

变化点识别示例

可能变化的决策隐藏方式
存储格式仓储接口后替换实现
第三方接口防腐层与适配器
算法实现策略接口按配置选择
部署拓扑配置注入而非硬编码
信息隐藏与“隐藏数据”不同:隐藏的对象是易变的设计决策。

易错点

  • 模块接口暴露内部数据结构,实现变化即破坏调用方
  • 按流程步骤而非变化点划分模块,变化时仍要跨模块改

数据来源与参考

  • David Parnas《On the Criteria To Be Used in Decomposing Systems into Modules》(CACM, 1972)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌