C语言Atitit . 编程模型的变革总结

Atitit . 编程模型的革命总结

 

1. 面向对象与面向过程程序设计来如下不同: 
1

1.1. 函数和数据是否分离….
1

1.2. 因为功能为主导;以数为中心…..
1

1.3. 事件驱动
2

1.4. 持续和多态
2

2. 面向对象的流弊
2

2.1.  OO的害处就是:设计抽象和包裹的时远远超越你解决问题之辰。
2

2.2. 繁杂的数据类型
2

2.3. 出现编程/并行计算/多按编程
2

2.4. “面向对象编程语言的问题在,它总是有意无意着富有它需要的隐含环境。
2

2.5. 面向对象的可维护性::最强的耦合关系
3

3. 解决之道::
3

3.1. 逻辑式语言结构
3

3.2. 面向模块、库或者接口(module/package)也许是还好的选料
3

3.3. Aop /泛型程序设计 是单是的模式
3

3.4. 函数式语言或可能会见顶替面向对象技术变为主流方式
4

3.5. 不用构建复杂的数据类型,数据可由函数来发表
4

4. 涌出编程/并行计算/多按编程
5

5. 淋巴 5

6. 参考 5

 

 

1. 面向对象与面向过程程序设计出如下不同: 

1.1. 函数和数码是否分离….

(1)面向过程程序设计艺术运用函数(或过程)来描述对数码的操作,但以以函数和那操作的多寡分离开来;面向对象程序设计方式将数据和针对数码的操作封装于一道,作为一个完好来拍卖。函数和数码是否分手。 

1.2. 为效能也主干;以数吧中心…..

(2).面向过程程序设计方法为功能为中心来规划功能模块,难于保护;而面向对象程序设计艺术以数据吧主干来叙述系统,数据相对于功能而言有较强之安静,因此再也易维护。以成效吗基本;以数据为着力。 

 

 

1.3. 事件驱动

3)面向过程程序的支配流程由程序中约定顺序来支配;面向对象程序的主宰流程由运行时各种风波的实际有来点,而不再由预定顺序来支配,更符合实际需要。预定顺序;由运行时各种风波之莫过于产生来点

1.4. 延续和多态

4)(4)面向对象程序设计艺术好下框架产品(如MFC,Microsoft Foundation Classes)进行编程。面向对象可采取框架面向对象和面向过程的从来差别,在于包装后,面向对象提供了面向过程不具有的各种风味,最要紧的,就是继续和多态。

笔者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

 

2. 面向对象的坏处

 

2.1.  OO的弊病就是:设计抽象和打包的时空远远超你解决问题的时间。

2.2. 繁杂的数据类型

2.3. 面世编程/并行计算/多对编程

2.4. “面向对象编程语言的题目在于,它总是有意无意着有它要的带有环境。

而想如果一个香蕉,但取的倒是是一个死猩猩拿在香蕉,而其还有全森林。” — Joe Armstrong(Erlang语言发明人)

2.5. 面向对象的可维护性::最强之耦合关系

面向对象从平开始便要求我们全然了解各个子类的不等,并将她们之“共性”提取到父类里,从而实现代码复用, 在是进程中本形成了平栽最强之耦合关系

3. 解决之道::

3.1. 逻辑式语言结构

 

3.2. 面向模块、库或者接口(module/package)也许是还好之选择

于一个求于相连变更,业务逻辑在不断长的扑朔迷离系统面临,面向模块、库或者接口(module/package)也许是再好的选。

 

 

3.3. Aop /泛型程序设计 是个是的模式

面向对象程序设计与泛型程序设计之可比: 

泛型程序设计比较面向对象程序设计有更强之虚幻能力。面向对象程序设计及泛型程序设计的抽象机制的区别是杀明了的。由于面向对象程序设计为一头之基类为共性抽象,而泛型程序设计是为合的需原则也共性抽象。因此,泛型程序设计比较面向对象程序设计有更胜似之虚幻能力,并且带有了面向对象程序设计的核心内容。一般来讲,直接坐目标类为概念进行抽象,抽象的程度并无赛,而直白以目标类满足的需要原则进行分类及虚幻,则可拿走特别高级别的肤浅,并会见带来双重甚之通用性和运行效率。  

泛型程序设计于面向对象程序设计还具备通用性。面向对象程序设计的通JFfj性是起家于接近继承机制及,这导致了面向对象的算法就会给用当简单的种类上,而泛型程序设计的算法是建 在布局一致性上。简单说,结构一致性是依语法结构上之一致性。泛型程序设计而某个特定的语法跟该语义能够对应起来。譬如说,在C++中,std::sort()算法的一个本子只有要求该操作数支持operator<,基本上这就是说只要对那个操作数来说“a<b”能够透过编译,该算法就能够成。而面向对象程序设计,利用面向对象方法设计成就的通用算法要求其操作数要累自某个特定的基类。所以说,泛型程序设汁算法能够使用到的类别集是无与伦比的/非绑定的。 

结束语 

面向对象程序设计艺术及泛型程序设计艺术各发生千秋。在某些情况下,良好的泛型程序设计规则可能违反良好的面向对象的程序设计方的平整,反之亦然。但就半栽次设计方式并无是水火不容,而是相得益彰。将立即有限种办法巧妙地整合,便形成了序设计的初思考,可以更有效地化解应用领域的骨子里问题。 

 

 

 

3.4. 函数式语言或可能会见替代面向对象技术成主流方式

 

 

 

当处理器对进步的初,对于电脑的非数值计算以之讨论,以及对此可计算性问题的钻和发展,大抵确立了几种植之乘除模型:递归函数类、图灵机、 Lambda演算、Horn子句、Post系统等等。其中递归函数类是可计算性问题的数学解释;Horn子句是prolog这仿佛逻辑语言的论战基 础;lambda演算成为了函数式语言的论争功底;图灵机是图灵解决但计算问题的下所计划之装,其后成为计算机的装模型,与图灵机相关的自动机以及 冯诺依曼结构,成为了命令式语言的辩护功底

 

 

3.5. 免用构建复杂的数据类型,数据只是由函数来表述

抽象数据类型(ADT,Abstract Data Type)为源起,发展出的面向对象技术。也就是是率先给C++所用的面向对象技术。

C++作为“更好的C”,继承了C语言对于程序的视角,也便是数据抽象(Data Abstraction)和进程。面向对象技术于C++中,是作同一栽更好的数据抽象的方法若留存的。

数据抽象在马上类似面向对象语言中凡同样种重大的架空方式。所谓数据抽象,在处理器发展之头是一样种植十分重要之技术。众所周知,计算机于装置模型上是一个 存储和平等组指令集,而二进制的蕴藏实际上是从来不外类型表示的。整数,浮点这些操作必须经过相应的约定,再因为指令集的形式开展支撑。而就电脑的向上, 简单的数据类型显然已经休能够满足使用之用。这时候一种灵活且实用之类别系统,就成为了扳平种植自然的追求(直到80年间初,类型系统都是计算机科学研究的要 方向某个)。

 

 

 

其余一样栽对象技术出现的不得了早,大概在60年间末就应运而生了,直到80年份初还有发展。但是好丰富一段时间内并无是极主流的做法,反而并无极端为人所知。

每当函数式语言里,因为高阶函数(High Order Function)的有,数据只是由函数来抒发。这就是函数语言里一个颇重要之眼光:Data as Procedure。在函数语言中,可以组织一种植好相近于对象的高阶函数:

 

 

4. 并发编程/并行计算/多对编程

基本上核CPU作为同一栽新的东西,给计算机界带来了新的慌张,大家认为出必不可少采取同样种新的编程模型以充分利用多对的优势。

 

 

虽然第一独名的落实是Erlang的actor系统,但是出于消息传递风格和面向对象模型相去不远,很快即于各种面向对象语言中生了类库支持。虽然 利用现代函数语言的语法特性,actor可以实现得更简明,但是对象对副作用和状态的包装,更好地解决了当产出环境下于共享状态的操作,反而来了重复好 的腾飞。

 

5. 淋巴

不好说。。。结合起来,更好吧。。

 

6. 参考

目标就死?.htm

参考文献  

[1]孙斌.扩展面向对象编程(XOOP)的理论同措施[J].汁算机学报,2001,24(3):266—280.  

[2]郑莉,董渊,张瑞丰编.C++语言程序设计(第3版本)[M],北京:清华大学出版社出版,2003  

[3]Matlew H Austern.泛型编程与STL[M],北京:中国电力出版社,2003, 

面向对象的利弊_百度文库.htm

(佳)面向对象的老毛病_mailrun_新浪博客.htm

他俩为何说面向对象有问题,探讨面向对象的有的败笔 – OurJS.htm