知识卡片
信息隐藏:隐藏复杂度的首要启发式
内容
信息隐藏(information hiding)源自结构化编程(Parnas 1972《论将系统分解为模块的准则》)。McConnell 认为信息隐藏是软件首要技术使命中格外重要的启发式方法,因为它强调的就是隐藏复杂度。在面向对象设计中,信息隐藏正是封装与隐私法则的体现;即便面向过程语言(如 C 用头文件分离声明与实现)也能体现封装思想,只是层次不如面向对象丰富、对数据结构不具控制权。发散:判断一段代码封装是否到位,问“调用者被迫知道了多少它本不该知道的细节”。
参考来源
- 位置:《解构领域驱动设计》附录A A.1.1(源文件:_epub-src/OEBPS/034.xhtml)
- 结论依据:原文追溯信息隐藏的来源并引用 McConnell 对其价值的评价,说明它与面向对象封装的关系。
- 原始内容:信息隐藏是软件的首要技术使命中格外重要的一种启发式方法,因为它强调的就是隐藏复杂度……在面向对象设计中,信息隐藏其实就是封装和隐私法则的体现。