面向对象和面向过程的编程思想
作者:***
来源:《电脑报》2022年第12期
        简单讲一讲面向对象和面向过程的编程思想。目前市面上流行着不同的编程语言,例如Scratch、Python、Java、GO、C等等,经常有同学会问小陈老师,这么多的编程语言,那么到底哪一种编程语言好学?哪一种编程语言容易上手呢?这些编程语言之间有什么区别呢?
        目前的编程语言底层逻辑都离不开三大编程思想:面向过程编程、面向对象编程和面向切面编程。其实编程的这些思想都源自我们的日常生活中,重要的不是学编程本身,而是通过编程来解决问题。
        面向过程:面向过程的思想是把一个项目、一件事情按照一定的順序,从头到尾一步一步地做下去,先做什么,后做什么,一直到结束。这种思想最好理解,和我们日常做事情的方法一致。
        面向对象:面向对象的思想是把一个项目或者一件事情分解成更小的项目,或是分解成更小的部分。每一部分负责单一方向的功能,最后再将这些部分组合而成为一个整体。好比制造汽车,汽车公司不会从头开始打造汽车,他们会从配件厂商那里购买所需要的零件如发动机、外壳、玻璃、轮胎最后进行总装即可。这种思想适合多人的分工合作,类似公司的模式,在公司中分成各个部门,每个部门分别负责该部门的职务,这样各个部门可以充分发挥自己的特,产品只要符合标准就可以了。
目前流行的编程语言
        面向过程的核心是分析出解决问题所需的步骤,然后用函数把这些步骤一步一步解决实现,使用的时候一个一个调取就可以了。
        面向对象是把构成问题的事物分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在整个解决问题的步骤中的行为。
        假设我们需要编写一个五子棋游戏。按照面向过程的设计思路就是首先分析问题的步骤:1.开始游戏;2.绘制棋盘;3.黑子先走;4.白子后走;5.判断输赢。从第六步开始重复3、4、5的步骤,直至判断输赢得出了最后的胜负结果。
        如果按照面向对象的思想来解决五子棋的问题,可以分成三大业务:1.黑白双方,这两方的行为是一模一样的都是下棋;2.棋盘系统负责绘制画面;3.规则系统,负责判定胜负结果。
        从上述描述我们可以看出,面向对象是以功能来划分的,而不是步骤,同样是绘制棋盘,这个行为在面向过程设计中分散成多个步骤,很可能绘制出不同的版本,因为设计人员会根据实际情况进行各种各样的简化。而面向对象的设计中,绘图只可能在棋盘对象中出现,从而保证了绘图的统一。
        两种思想在初期可能感受不出有什么区别,如果后期游戏需要升级,在游戏中增加一些其他功能时就能体现出区别了。比如我想在游戏中加入悔棋的功能,在面向过程的代码中我需要重新构造,程序的顺序需要大幅度调整,但是如果是面向对象的代码中,只用改动棋盘对象就可以了,只需要在棋盘对象中加入悔棋的功能,不会对整体的顺序产生大的影响。
        针对不同的问题我们可以通过不同的思维模式去尝试多种解决方法。条条大路通罗马,没有对错之分,只是针对不同的问题考虑合适的处理方法而已,比如是否需要考虑后期代码的扩展维护及突发故障等情况。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。