- 冒号空间 - https://blog.zhenghui.org -

Reply To: 抽象是什么?

郑老师:最近一直在做《冒号课堂》的读书笔记,在整个书中,最重要的观点就是“抽象”


如你所总结的, “在编程设计过程中所谓的抽象,是指在一定的视角和一定的层次上,对问题域的一种筛选——筛下表面,留住本质;筛下差异,留住共性;筛下实现,留住规范;筛下how to do,留住what to do。”


我理解,抽象是一种思维的“过程”,包括思考发生的场合(层次)、思考的方式(如何筛选)


如果这个理解是对的话,那么我对 7.2 节“数据抽象”的理解如下:


1、 数据抽象发生在实现阶段,通常是在如何实现一个类的过程中发生的。

2、 在进行数据抽象之前,已进行了“规范抽象”,提炼出了“接口规范”

3、 数据抽象是将“接口规范”映射到具体实现(通常指一个类)的过程

4、 抽象的方式是,按照“接口规范”定义出类的对外接口(API);到此为止,“数据抽象”已经结束

5、 数据抽象完成后,再考虑类的具体实现;围绕的是数据的组织方式、算法实现进行的;这些具体实现通过封装机制隐藏起来。


我感觉这种理解方式比较教条和生硬,并不符合实际情况,但是表达起来,更让人容易理解。

想听听你的看法。


Share