编程范式思惟

程序设计有一个范式问题:就是组织程序的基本思想。它反映了程序设计者对程序的一个基本的哲学观,也就是说,他认为程序的本质是什么,他认为一个大的程序是由什么组成的。网络

范式目前有三种:过程范式、函数范式、对象范式。函数


  1. 过程范式认为,程序是由一个个过程通过顺序、选择和循环的结构组合而成。反映在现实世界,过程范式体现了劳动分工以前“大包大揽”的工做特色—能胜任全部事情,拥有全部的资源,高度集中在这个“人”身上,只不过具体的事情得一步步地有顺序来处理。
  2. 对象范式反映了劳动分工以后的团队协做的工做特色–每一个人各司其职,各有所长,各自拥有私有资源,工件和信息彼此传递,最后完成工做。所以,对象范式也就造成了本身对程序的见解—程序是由一组对象组成,这些对象各有所能,经过消息传递实现协做。

后者较前者具备3个优点:设计

  1. 因为实现了逻辑分工,下降了大规模程序的开发难度。
  2. 灵活性更好–若干对象在一块儿,能够灵活组合,能够以不一样的方式协做,完成不一样的任务,也能够灵活的替换和升级。
  3. 对象范式更加适合图形化、网络化、消息驱动的现代计算环境。

对象范式的两大基本观念:对象

  • 程序是由对象组成的。
  • 对象之间互相发送消息,协做完成任务。

为了方便对象的构造,引入了类、继承等概念。 smalltalk构造了更灵活和纯粹的消息发送机制。继承

它实现了一个与目标对象无关的消息发机制,无论那个对象是谁,也无论他是否是能正确的处理一个消息,做为发送消息的对象来讲,能够毫无顾忌的抓住一个对象就发送消息过去。接到消息的对象,要尝试理解这个消息,并最后调用本身的处理过程来处理消息。若是这个消息能被处理,那个对象天然会处理,若是不能处理,Smalltalk系统会向消息的发送者回传一个doesNotUnderstand消息,予以通知。对象不用关心消息是如何传递格给一个对象的,传递过程被分离出来(而不是向Simula那样明确地以成员函数调用的方式实现),能够是在内存中复制,也能够是进程间通信。到了Smalktalk-80,消息传递甚至能够跨越网络。进程

不妨把源自Smalktalk的消息机制称为“动态消息机制”。内存

把源自Simula的消息机制称为“静态消息机制”。资源

对于消息转发机制的不一样选择,主要是由于用途。Simula用于仿真程序开发,smalltalk用于图形界面环境构建。开发

到了1980年代,C出现了。Bjarne Stroustrup在博士期间深刻研究Simula,因而在C语言基础上,几乎把Simula思想照搬过来,造成了最初的C。 大约在同期,Brad Cox根据Smalltalk的思想设计了Objective-C,但是因为其语法怪异,没有流行起来。只有Steve Jobs这种具备禅宗美学鉴赏力的世外高人,于1988年把Objective-C的团队和产品一口气买了下来。团队协作

相关文章
相关标签/搜索