一些思维的碎片(一)
计算机科学是研究将现实系统“抽象”为计算机可以理解和运算的系统.这时最原始的解释。但是现实系统中那些东西需要抽象:信息+处理信息的操作+业务。
抽象的过程:共性的抽象思维将信息归类,划分。形成不同的信息类型,而这个信息类行其实就是:包含着各个信息项的集合。这些信息项之间的组织方式和对这些数据可施加的操作=》数据结构。
前面两者抽象后成数据结构(数据结构:现实世界的信息,数据抽象后、建模后的数据之间的组织方式),而最后一项的业务其实也就是操作这些信息的前提条件和操作这些信息之后的所造成的影响。在通常的数据库驱动软件项目里面,其实我们选择的就是线性组织数据的方式,而数据结构决定着算法,线性表和二叉树的遍历代码肯定不是一样的。
那么面向对象的类是否也是一种数据结构?我不这么认为,因为数据结构有一个很重要的特点就是数据之间的逻辑关系。还是回到上面的抽象。抽象后信息需要在计算机系统中表示,还要通过逻辑进行操作。面向过程中是将信息和操作分开的。面向对象的是结合在一起的。或许说面向对象和面向过程的区别是抽象层次的区别更好些。
在经典的理论中认为:程序=算法+结构.