面向对象的思考过程(原书第5版)
上QQ阅读APP看书,第一时间看更新

1.8 封装和数据隐藏

使用对象的一个显著好处是对象无须暴露它的所有属性和行为。在出色的面向对象设计(至少通常认为是好的设计)中,对象仅暴露必要的接口来和其他对象进行交互。除了如何使用该对象,其他细节都应当对其他对象隐藏起来——基本上是一个“需要知道”的基础。

封装是基于对象既包含属性也包含行为这一事实定义的。数据隐藏是封装的主要部分。

例如,一个计算数字的平方值的对象必须提供一个接口来展示结果。然而,调用方无须知道该对象计算平方值的内部属性和算法。健壮的类会一直拥有良好的封装。下一小节中,我们会讲解接口和实现的概念,这是封装的本质。