2010年03月2日 at 10:29 am
#1151
Member
郑老师:最近一直在做《冒号课堂》的读书笔记,在整个书中,最重要的观点就是“抽象”
如你所总结的, “在编程设计过程中所谓的抽象,是指在一定的视角和一定的层次上,对问题域的一种筛选——筛下表面,留住本质;筛下差异,留住共性;筛下实现,留住规范;筛下how to do,留住what to do。”
我理解,抽象是一种思维的“过程”,包括思考发生的场合(层次)、思考的方式(如何筛选)
如果这个理解是对的话,那么我对 7.2 节“数据抽象”的理解如下:
1、 数据抽象发生在实现阶段,通常是在如何实现一个类的过程中发生的。
2、 在进行数据抽象之前,已进行了“规范抽象”,提炼出了“接口规范”
3、 数据抽象是将“接口规范”映射到具体实现(通常指一个类)的过程
4、 抽象的方式是,按照“接口规范”定义出类的对外接口(API);到此为止,“数据抽象”已经结束
5、 数据抽象完成后,再考虑类的具体实现;围绕的是数据的组织方式、算法实现进行的;这些具体实现通过封装机制隐藏起来。
我感觉这种理解方式比较教条和生硬,并不符合实际情况,但是表达起来,更让人容易理解。
想听听你的看法。