知识卡片

封装:分离行为与实现细节

专业/工作 · 1290.h

内容

封装指限制对对象内部状态的直接访问:把实例变量标记为私有,只能由对象自己的方法读写;把该暴露给外界使用的方法标记为公有。这样一来,系统里的其他对象只能通过公有方法这个”窗口”与某个对象打交道,完全不知道、也不需要知道它内部变量叫什么名字、当前存的是什么值。发散:封装的真正价值要在”修改代码”这个场景才能体现——只要公有方法的行为约定(接口)不变,对象内部随便怎么重新组织实现细节,都不会波及任何依赖它的外部代码;反过来,如果内部状态可以被任意外部代码直接读写,任何一次内部重构都可能牵连到整个系统里所有触碰过这个对象的地方,这正是”从对象的实现中分离对象的行为”这句话背后的工程意义——封装保护的不是数据本身,而是未来修改代码的自由度。

参考来源

《计算机科学概论》第6章《程序设计语言》