最近比较忙,奇怪的是越忙的时候就越会有一些很无聊的胡思乱想。想到了一个初学面向对象时被问到烂了的问题:封装到底是什么。这个问题课本有标准答案式的解答,什么隐藏内部实现保留外部接口,但我并不满意这个回答。今天上课的时候又被老师的关联话题提起,于是想记录一下我现在的想法。
理想状况下的封装
我认为对于有一定复杂度的软件或中间件,理想状况下的封装应该是其内部单元的投影(或视图)。也就是说,良好的封装并不是为了隐藏内部细节,而且强调某种情况下我们仅仅需要关注的部分单元。在脱离了这种情况之后,我们应该随时有放开投影观其全貌的权利。
比较常见的封装
隐藏和掩盖丑陋的内部设计。