zoukankan      html  css  js  c++  java
  • 面向对象与面向过程

    面向对象与面向过程的理解

    面向过程与面向对象是两种不同的编程思想,针对的编程理念不一样,但不管是哪种语言都有这两种思想在内,在C语言中,尽管没有直接面向对象的说法,但有结构体的概念,这就是面向对象的思维解决事物。那到底什么是面向过程什么是面向对象,干了多少年的程序猿都不一定回答得上来,下面我们用通俗易懂的例子解释:

    现在有个需求:我现在很饿,我要做一份午餐
    需求分析:需要把饭菜从原材料做成午餐
    面向过程做法:大杂烩,由原材料菜和饭一锅炖,怎么快怎么来,只追求结果,不追求好看也不追求好吃
    面向过程做法:做成一桌子菜和饭,芹菜是芹菜的做法,红烧肉是红烧肉的做法,最后的结果也是做成了午餐

    现在是不是有一定懵懂呢?别着急,待我解释
    在面向过程的编程思想中,以结果为导向,追求过程的强逻辑化,不讲究细节,往往寻求效率最高的方式,所以最快能做出一顿午餐的方式就是大杂烩,乱炖,目的达到。
    在面向对象的编程思想中,以对象为导向,追求模块化,效率不是最高的,但是维护和可拓展性却是最强的,在烧饭过程中,芹菜就是对象,肉也是对象,分别完成了烧芹菜和红烧肉这两道菜,最后和饭搭配成了午餐,目的也达到了。
    回过头来看例子比较两种编程思想,面向过程烧出来的菜我再想加热给别人吃,但是人家不吃芹菜,这下麻烦了,要一点一点把芹菜全挑出去,麻烦得要死。面向对象烧出来的菜我直接不加热芹菜就好了,红烧肉拿给人家吃,方便多了。这么来讲你是不是对面向过程和面向对象有了比较好的理解呢?
    接下来我们就要看在编程中,面向对象和面向过程的具体体现了:

    面向对象:各种语言叫法和语法不一样,通常面向对象语言的体现就是类,类是个抽象概念,是同一种事物的抽离,比如动物,动物并不是个实际的个体,它是所有动物个体的一个抽离概念,人类的定义中:动物、植物、人、昆虫、爬行动物、脊椎动物等等等等,这些都不是你眼睛看得到的实际个体,具体到隔壁老王家的狗小黑、你手里的电脑、你桌上的口杯...这才是具象化的东西,那么这些实际的个体就是对象,老王是人类的对象,老王家的狗是狗类的对象,你手里的电脑是电脑类的对象,你桌上的口杯是杯子这个类的对象。面向对象的思想就是用不同的类去产生不同的类对象,然后用类对象去完成某些功能,最后解决问题
    面向过程:解决问题的过程就一条思路走到底,寻求过程的最简化

    这么来看,你是不是会有一个疑问,既然面向对象这么好怎么还会有那么多其他语言的开发者呢?

    别着急,待我分析。在编程过程中,其实所有问题都可以用面向过程思维去解决,并不是说面向过程一定就不好,面向过程开发的程序是具有强逻辑性和高效率的,对于中小型项目和对性能要求高的程序,仍然需要用面向过程的编程思想去解决。在每一种编程语言中,都有基于面向过程的开发,为什么这么说呢?在面向对象编程语言中宏观层面是有面向对象思想为主导,在项目的微观层面,都是用的面向过程去解决某一个细分功能的

  • 相关阅读:
    商贸通帐套隐藏方法
    固定资产打开提示:上年度数据未结转!
    ZOJ 2432 Greatest Common Increasing Subsequence
    POJ 1080 Human Gene Functions
    POJ 1088 滑雪
    POJ 1141 Brackets Sequence
    POJ 1050 To the Max
    HDOJ 1029 Ignatius and the Princess IV
    POJ 2247 Humble Numbers
    HDOJ 1181 变形课
  • 原文地址:https://www.cnblogs.com/dongxixi/p/10758870.html
Copyright © 2011-2022 走看看