C语言是面向过程的,Java是面向对象的,这是普遍当人们思考面向对象还是面向过程的基本逻辑。但恰恰相反,应该说C语言更容易实现面向过程的设计,Java更容易实现面向对象的设计。
我们应该面向的是设计,而面向过程和面向对象恰恰是在人们去思考和解决人类真实世界问题的两种思维模式,这两种模式是属于设计阶段的,而不应牵扯任何开发实现。我们说,面向过程设计,面向对象设计。
面向过程设计的思维模式更多的倾向于计算机指令的运行模式,这恰恰是计算机诞生之初所造成的必然倾向。无论是C, Java, php, Rail,任何语言,最后都会编译成CPU体系结构依赖度高的汇编指令集。而过程恰恰是CPU执行这些指令的天然模式。当计算机应用覆盖了更多的领域之后,面先过程的设计思维越来越难于清晰的分割,解决一些复杂的商业逻辑,当然还是可以,但是,你的脑子会很痛。
于是我们的某些人抽象了这些人类社会中的问题模型,面向对象设计理念诞生。面向对象的重点在于我们设计逻辑思维更多的贴近了人类能理解的方式。data abstraction, encapsulation, messaging, modularity, polymorphism, and inheritance(see: http://en.wikipedia.org/wiki/Object-oriented_programming) 这些都是面向对象的基本要素,而这些要素是人类能理解的,对于最终CPU运行的指令集编译自面向过程或是面向对象的开发语言,根本没有本质的区别。
“面向对象不是万能的”这句话很多人说出来其实都是在抨击Java这类面向对象开发语言的场景下。其实,他们要说的是“Java或这XX语言不是万能的”。如果真的否定了面向对象设计思维,那就如同人类荒唐的否定自己的逻辑思维,模糊思维,或者其他任何思维模式。
面向对象还是面向过程,其实我们需要的是面向设计,我们在面向设计的时候需要的是思考模式的转变,不是开发语言的束缚。
Lonelybug
加拿大 2011年7月10日
分享到:
相关推荐
面向过程、面向对象、面向组件、面向服务软件架构的分析与比较 软件开发历程与架构演进 软件开发从汇编语言、过程式语言、面向对象、面向组件发展到面向服务,这一进程不仅反映了编程技术的不断进步,更是软件工程...
面向过程和面向对象是两种不同的软件设计方法,它们之间的区别是非常重要的。在设计软件时,选择合适的方法对于软件的质量和可维护性有着重要影响。 面向过程是一种-old school-的设计方法,它着眼于解决问题的步骤...
### 面向对象与面向过程编程:对比与分析 #### 一、引言 在计算机科学领域,程序设计范式是定义如何构建和组织...无论是面向对象还是面向过程,关键在于找到最适合解决问题的方式,从而提高代码的质量和可维护性。
面向对象的程序设计语言与面向过程的程序设计语言是两种主要的编程范式,它们各自具有独特的设计理念和方法。在编程领域,理解这两种语言的区别对于编写高效、可维护的代码至关重要。 面向过程的编程(Procedural ...
根据给定文件的信息,本文将深入探讨面向对象与面向过程这两种程序设计方法,并对比分析两者的特点及适用场景。 ### 面向过程的程序设计 面向过程的程序设计方法是传统编程模式的基础,它强调按照一定的顺序来组织...
面向对象编程(Object-Oriented Programming, OOP)和面向过程编程(Procedural Programming)是两种不同的编程范式,它们在解决问题的方式上有着本质的区别。 面向过程编程是一种自底向上的编程思想,它关注的是...
总的来说,选择面向过程还是面向对象取决于项目的需求、规模以及团队的开发习惯。对于初学者,理解这两种编程范式的区别并掌握它们各自的适用场景是非常重要的,这有助于编写出更高效、可维护的代码。
这个系统可以采用两种不同的编程范式:面向过程和面向对象。面向过程编程是通过步骤和函数来组织代码,而面向对象编程则是通过类和对象来构建程序。对于初学者来说,理解这两种方法的差异和应用场景是非常重要的。 ...
【从面向过程到面向对象】的演变历程是编程思想的重大进化。面向过程编程,始于IBM公司的约翰·巴库斯在1957年推出的Fortran,这种编程方式以功能分解为核心,采用自顶向下的结构化方法,将复杂问题拆解为一系列小...
面向对象设计方法(OOD)与面向过程设计方法(POP)是软件开发中两种不同的程序设计范式。面向过程设计方法是一种早期的编程范式,以算法为核心,将问题分解为可直接操作的过程或函数,从而完成任务。而面向对象设计...
《C++代码从面向过程到面向对象一应俱全》 C++是一种强大的、通用的编程语言,它在计算机科学领域扮演着至关重要的角色。它不仅继承了C语言的高效和灵活性,还引入了面向对象编程(OOP)的概念,使得程序设计更加...
总而言之,无论是面向过程还是面向对象编程,它们都是为了解决特定问题而设计的工具。理解这两种编程范式的本质,并结合实际项目的需求来选择和应用,是成为一名优秀程序员的关键。通过五子棋小游戏的开发,我们可以...
面向过程的程序设计在处理具体问题、算法和数据结构时表现出色,而面向对象的程序设计则在模拟现实世界、创建复杂系统模型方面具有得天独厚的优势。在实际应用中,根据问题的性质和需求选择合适的编程范式,可以大幅...
2. **执行效率相对较低**:由于类和对象的存在,面向对象编程在某些场景下的运行效率可能不如面向过程编程。 3. **设计复杂度增加**:为了充分利用面向对象的优势,需要更精心地设计类和对象之间的关系。 #### 四、...
面向过程与面向对象 6.1.1 面向过程与面向对象 1、概念 面向过程(Procedure Oriented)也可称之为“面向记录”,是一种以过程为中心的编程思想。它注重的是具体的步骤,只有按照步骤一步一步执行,才能够完成某件...
标题和描述中的“算24点程序 面向过程与...总之,无论是面向过程还是面向对象的C++实现,解决24点游戏的关键在于算法的设计和优化。选择哪种编程范式应基于具体项目的需求、团队的技能集以及代码的长期可维护性等因素。