函数关系和对象关系
算法+数据结构=程序。
这是一条很著名的公式。但是我觉得过于简单的公式或者不能适应现在的开发潮流了。
程序一个目的是用来模拟人类的行为,让机器自动化处理本来人自己需要处理的事务。
正因为这样,所以程序有很强的“过程性”,把人的步骤转化为计算机指令的序列。
过程性的设计方法,是最原始的方法,是完全模拟人类习惯的一种方法。
但是,其实过程并不是我们关注的重点,我们关注的是结果。只要是这个结果,我们不在乎这个过程究竟是如何实现的。
有没有办法表述这种从输入到结果的对应关系呢?
有,那就是函数。有了函数,我们就将过程给抽象化了,我们再也不关心过程如何,只需要知道这个函数能正常工作就行了。
因此函数是过程的抽象。我们可以把人类具体事务,识别成各种函数关系。函数关系是关于定义域和值域的对应方法。建立函数关系,首先要明确的定义域和值域,这表现为数据的状态集合,然后定义转换方法。
函数是一个非常高层次的抽象概念,但是过于数学化。我们认识事物的一般方法并不是去定义什么状态集合,而是基于一些归纳了的概念。
概念是属性和动作的组合,比如“颜色”是属性,而“飞”是动作。
概念是高度抽象的,有别于具体的对象。通过概念,就可以不关心具体对象是什么,而只需要关心概念的提炼。
从某种层度上来说,概念和函数是异曲同工,都是从高层次上开展编程设计为目的。
----------------------------------------------
高层设计的内涵是什么?
第一点是从上到下的设计思路,从概念关系到具体实例。