面向过程,面向对象还是面向设计 JavaC设计面向对象面向过程
程序员文章站
2022-06-06 16:30:20
...
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日
我们应该面向的是设计,而面向过程和面向对象恰恰是在人们去思考和解决人类真实世界问题的两种思维模式,这两种模式是属于设计阶段的,而不应牵扯任何开发实现。我们说,面向过程设计,面向对象设计。
面向过程设计的思维模式更多的倾向于计算机指令的运行模式,这恰恰是计算机诞生之初所造成的必然倾向。无论是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日