封装,就是把一堆东西装起来,并封上,使你从外部看不到这堆东西在内部是如何组织到一起的。简而言之,就是掩盖细节。
什么是封装?
保护隐私,我们不希望别人看到内部细节是如何运作的,只想让别人看到我们希望别人看到的功能。例如:汽车转向是通过转动方向盘实现的。汽车的转向系统就是封装后只暴露了一个方向盘给驾驶员,驾驶员通过转动方向盘实现汽车的转向,而驾驶员是看不到转动方向盘以后转向轴是如何把转向操作传递给转向器,转向器是如何通过转向臂、液压助力器、梯形臂、转向横拉杆等细节功能去实现转向的。
为什么要封装?
在面向过程的设计中,数据结构是公开的,任何人都可以随意修改数据和结构。那么安全性和稳定性就是未知的。如果我们把数据结构封装起来,只暴露出可以暴露的功能,那么就不会出现随意乱改的情况。同时,面向对象通过封装,隔离了复杂度,每个人只关注自己的业务。例如:驾驶员就只关心如何操作好方向盘,注意路况,及时转向。而不必关心整个转向系统的运转。