程序设计范式

转自孟岩博客https://blog.csdn.net/myan/article/details/5928531

function/bind的救赎(上)

程序设计有一个范式(paradigm)的问题。所谓范式,就是组织程序的基本思想。这个思想,反映了程序设计者对程序的一个基本的哲学观。也就是说,他认为程序的本质是什么,他认为一个大的程序是由什么组成的。而这,又跟他对于现实世界的看法有关。显然,这样的看法不可能又很多种。编程作为一门行业,独立存在快60年了,但是所出现的范式不过三种----过程范式、函数范式、对象范式。其中函数范式与现实世界差距较大,这里不讨论,而过程范式可以视为对程序本质的两种根本不同的看法,而且能够分别在现实世界中找到相应的映射。

    过程范式:程序是由一个又一个过程顺序、选择和循环的结构组合而成。反映在现实世界,过程范式体现了劳动分工之前“全能人”的工作特点---所有的事情都能干,所有的资源都是我的,只不过具体的事情得一步步地来做。

    对象范式则反映了劳动分工之后的团队协作工作特点--每个人都各有所长,各司其职,有各自的私有资源,工件和信息在人们之间彼此传递,最后完成工作。因此,对象范式也就形成了自己对程序的看法--程序是由一组对象组成,这些对象各有所能,通过消息传递实现协作。

    对象范式与过程范式相比,由三个突出的优势,第一,由于实现了逻辑上的分工,降低了大规模程序的开发难度。第二,灵活性更好--若干对象在一起,可以灵活组合,可以以不同的方式协作,完成不同的任务,也可以灵活的替换和升级。第三,对象范式更加适应图形化、网络化、消息驱动的现代计算环境。

    对象范式两个基本观念:

1.程序是由对象组成的

2.对象之间互相发送消息,协作完成任务;

这两个观念与后来熟知的面向对象三要素“封装、继承、多态”根本不在一个层面上,倒是与后来的“组件、接口”神合。


你可能感兴趣的:(软件设计思想)