无知的 tonyseek

Yet Another Seeker

胡思乱想:封装到底是什么

最近比较忙,奇怪的是越忙的时候就越会有一些很无聊的胡思乱想。想到了一个初学面向对象时被问到烂了的问题:封装到底是什么。这个问题课本有标准答案式的解答,什么隐藏内部实现保留外部接口,但我并不满意这个回答。今天上课的时候又被老师的关联话题提起,于是想记录一下我现在的想法。

理想状况下的封装

我认为对于有一定复杂度的软件或中间件,理想状况下的封装应该是其内部单元的投影(或视图)。也就是说,良好的封装并不是为了隐藏内部细节,而且强调某种情况下我们仅仅需要关注的部分单元。在脱离了这种情况之后,我们应该随时有放开投影观其全貌的权利。

软件内部单元的投影

比较常见的封装

隐藏和掩盖丑陋的内部设计。

Comments