今天,再做个文件保存的项目时候,再次体会到封装的含义,就是隐藏实现的细节,只保留访问的接口;以前只是说说封装,对于封装只是似懂非懂。在这一刻仿佛对它又明了几分;
首先简介一下这个项目:这个项目是对指定文件夹中的压缩文件解压到另外一个文件夹中,然后对文件夹的数据进行保存;我设计的是一个文件管理类,一个文件类,一个目录类,并且文件类和目录类实现同一个接口;我原来设计的是当文件解压完成后,调用Save()全部保存,但是由于需求的变动需要边解压边保存,于是我就想,通过向管理类传递一个目录路径来获取指定的目录指针。然后在调用目录的Save()函数,来保存;隐隐感觉总有什么不妥,在思考有没有好的方法来解决这个问题,突然想到我只传递一个路径参数,然后让其内部自己处理,保存。这样不就更方便了,为什么还一定要获取指定目录在保存呢?这不是增加任务量,增加接口么;于是就为管理类重载一个Save(String )函数;只要在需要保存某个目录时候,调用一下这个函数就行了,并且把原来的接口保留,这样岂不更好? 总感觉这次让我更加深刻理解封装的含义,对外屏蔽内部的实现