“法天象而应四时”--茶话软件开发之“抽象”(2)--过程的抽象:函数

简介:
本想写这样的一个系列的,无奈一直没有时间,没想到网上已经有人写了类似的文章,说明了我原来的观点:
函数既是过程的抽象!
当然,函数的抽象意义远非如此简单,这里先做一个概念入门,请看转帖的原文:
 

 

算法+数据结构=程序。

这是一条很著名的公式。但是我觉得过于简单的公式或者不能适应现在的开发潮流了。

 

程序一个目的是用来模拟人类的行为,让机器自动化处理本来人自己需要处理的事务。

正因为这样,所以程序有很强的“过程性”,把人的步骤转化为计算机指令的序列。

过程性的设计方法,是最原始的方法,是完全模拟人类习惯的一种方法。

但是,其实过程并不是我们关注的重点,我们关注的是结果。只要是这个结果,我们不在乎这个过程究竟是如何实现的。

有没有办法表述这种从输入到结果的对应关系呢?

有,那就是函数。有了函数,我们就将过程给抽象化了,我们再也不关心过程如何,只需要知道这个函数能正常工作就行了。

 

因此函数是过程的抽象。我们可以把人类具体事务,识别成各种函数关系。函数关系是关于定义域和值域的对应方法。建立函数关系,首先要明确的定义域和值域,这表现为数据的状态集合,然后定义转换方法。

 

函数是一个非常高层次的抽象概念,但是过于数学化。我们认识事物的一般方法并不是去定义什么状态集合,而是基于一些归纳了的概念。

 


    本文转自深蓝医生博客园博客,原文链接:http://www.cnblogs.com/bluedoctor/archive/2012/01/20/2328023.html,如需转载请自行联系原作者



相关文章
|
7月前
|
安全 Java 数据安全/隐私保护
|
4月前
|
设计模式
建模底层逻辑问题之以命令设计模式为例,要用定义法建模,如何实现
建模底层逻辑问题之以命令设计模式为例,要用定义法建模,如何实现
|
5月前
|
存储 缓存 关系型数据库
提升代码可读性问题之Repository仓储层在细节无关原则中的作用是什么
提升代码可读性问题之Repository仓储层在细节无关原则中的作用是什么
|
4月前
|
设计模式 微服务
设计模式问题之在软件设计中,“模块”如何定义和区分
设计模式问题之在软件设计中,“模块”如何定义和区分
|
7月前
针对抽象编程与对应的好处
针对抽象编程与对应的好处
50 1
|
算法
《重构2》第七章-封装
《重构2》第七章-封装
106 0
|
网络协议 数据可视化 测试技术
面向对象分析与设计的底层逻辑
真正掌握了面向对象分析和设计的方法,也体会到其中的益处,对理解业务、方案设计、编码开发都有好处。
843 6
面向对象分析与设计的底层逻辑
|
编译器 C语言 索引
SystemVerilog学习-03-设计特性与接口
SystemVerilog学习-03-设计特性与接口
323 0
SystemVerilog学习-03-设计特性与接口
|
Scala 开发者
控制抽象的最佳实践 | 学习笔记
快速学习控制抽象的最佳实践
|
前端开发
前端工作小结9-组件封装思想
前端工作小结9-组件封装思想
140 0
下一篇
无影云桌面