单选题5.3 软件设计3 / 12
正在加载题目…
系统集成项目管理工程师 · 第三版 · 第5章 软件工程
更换内部存储结构却不影响调用方,信息隐藏解决了什么?
12 道章节练习题
答案与解析
正确答案 D
调用方依赖的是模块公开承诺的行为,而不是数组的存放方式。内部结构改变但接口约定仍满足,变化就不必扩散到调用方。这体现信息隐藏,选D。
可以把问题反过来想:如果调用方自己去取内部数组的第几个位置,模块一换结构,它就得跟着改。信息隐藏要减少的正是这种对内部表示的依赖,而不是把接口文档也藏起来。接口应说明能调用哪些操作、参数和返回值有什么含义,以及必要的副作用和条件。题干明确其他约定也不变,才支持“不必改写”;只保留同名函数、却改变错误处理或结果语义,不能算满足这一前提。内部替换后仍要验证兼容性,信息隐藏不等于免测试。
选项分析
- A
- 让调用方共同管理内部数据反而增加对具体表示的依赖,结构一变更容易牵动外部代码。
- B
- 隐藏的是不应被依赖的实现细节,接口本身要清楚;省略约定会让调用方只能猜测行为。
- C
- 信息隐藏允许内部实现独立演进,不是通过冻结实现来保证所有代码都永远不变。
- D
- 抓住了对外约定与内部表示的边界,能说明为什么这一内部变化没有迫使调用方修改。
容易混淆的地方
把信息隐藏理解成保密或不写文档,或者以为接口名称没变就足以证明行为兼容。
再巩固一步
- 检查调用方是否知道了不该知道的内部细节,再检查公开约定是否真的保持,而不只看函数名。
原创章节练习题 · 第三版 · 《系统集成项目管理工程师教程》第3版 · 5.3.1 · 纸书第213页查看完整题目与详解