类对象思想的心路历程

来源:互联网 发布:淘宝买家怎么合并订单 编辑:程序博客网 时间:2024/04/28 10:32

编程思想的发展简史:大家熟知的程序是程序员们的面相电脑使用面向机器或软件识别语言创造的产物。创作的思想从面相机器细节的二进制低级语言编程(需要精确掌握CPU指令、寄存器、段地址等底层硬件的细节,编写同样困难且易出错,想当初我就是被汇编语言整的半死)、到具体移植性和通用性的面向问题过程编程(解决第一次软件危机--“软件复杂性问题”即软件规模超越了汇编等语言的承载能力导致软件质量低下、项目无法如期完成、项目严重超支等,典型的危机有:《人月神话》作者布鲁克斯主管的IBM的System/360操作系统开发投入2000程序员一年投入5亿美元,但是项目进度却一再延迟,创作每次周期完成一个指令的单一首个指令集可兼容计算机)、到第二次软件危机(软件生产力远跟不上硬件和业务的发展,主要体现在“可扩展性、可维护性”问题,也就是面向过程方法不能适应快速多变的业务需求)发展到如今的贴近人类思维的面向类对象的程序设计。

类对象语言的发展简史:从最早提出类、对象、继承概念并未完整实现的Simula浮光掠影、到Smalltalk这个老二也是第一个完整实现了面向类对象的语言成了”编程语言小旋风“引领了面向类对象的思潮、再到C++博采类对象语言众长的超级大杂烩大行其道、最后发展到C++改进版且“大大提升生产力、降低复杂度”的Java顺其自然的成长成类对象语言国王。

解读面向过程,该设计思想与计算机本质(是一台机器,其核心CPU处理的是指令流,简单点说就是01串)相关,要让计算机跑改程序,理所当然依照CPU的特点进行思考和处理;是一种以“过程”为中心的编程思想,其中过程的含义是”“完成一件事情的步骤”。

解读面向对象,是一种以“对象”作为中心的编程思想,其中对象的含义可以理解为“存在的东西”;与面向过程方法相比,面向对象不再局限于计算机的机器本质,而更加侧重于对现实世界的模拟;面向过程的方法中有一个类似于中央控制器的角色进行统一调度,而面向对象的方法终没有明确的中央控制角色也不需要制定严格的操作顺序而是设计很多对象并指定了这些对象应该完成的任务,以及这些对象如何对外界的刺激做出反应-响应。

如果说面向过程像一条流水线那么面向对象就像是一个足球队。没有哪个人能够在一场比赛开始的时候,就精确指定每个队员的每一次跑动,每一次出脚每一次传球。。。而只能制定队员的角色(前锋、中场、后卫、门将),然后有队员们自己根据情况作出反应。所以世界上有两条一样的生产线,。但绝对不会存在两场一摸一样的比赛。

面向对象这种对现实世界的模拟的思想,本质上是“人的思想”,这是一个质的飞跃,意味着程序猿可以安装人的思想来观察、分析、设计系统。



0 0
原创粉丝点击