面向对象与面向过程
面向过程:
是一种以过程为中心的编程思想。具体可以理解为生活中我们去超市买东西这件事。
我们首先是去把他分解为几步,第一步出门,第二步到达超市,第三步选择要买的东西、第四步付钱,第五步回家。这是我们去思考解决这件事情的步骤。而且我们在编程的时候也是按照这个步骤去写代码的。
这种解决问题的模式更加贴合我们生活习惯。所以这种编程范式更加倾向于小型的程序。这是通过这个例子说明的面向过程的内涵,面向过程还有其它的一些优势,就是按照这种范式去开发的软件性能相对于面向对象开发的软件性能还要快。
但是面向过程开发的软件也是有弊端的,就是这种软件后期的维护、扩充、复用都不理想。
面向对象:
是一种以对象为中心的编程思想。
特征:封装、继承、多态
面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。
这里的对象是指的我们生活中能够见到听到的物品、一切名词、宾语,这里我们还是去使用去超市买东西这个例子来以面向对象的思路去分析这件事情。
这件事情中只需要找到对象,有了这些对象以后才去考虑后续实现这些事情。比如在这件事中抽象出来的对象可以有参与人、场所、道具这三个对象,其余的对象是在这三个对象基础之上去扩展,比如超市这里你可以去很多家超市去买东西,那么你这个超市就基于这个场所去扩展就好了。
通过这件事可以看出面向对象具有的特性也可以称为优点那就是可复用、可维护、可扩充,通过这些特性我们可以得出面向对象的这种开发方式更适合于大型的软件。
对比总结
通过上述的描述我们可以看出
面向过程是性能快、倾向于小型程序,但是这种开发形式会导致后期的维护、扩充、复用都不理想
面向对象是适合大型软件的开发,对于后期的维护、复用、扩充都是很方便的,缺点就是性能相对于面向过程开发的软件性能相对低。
在我们现在熟知的两大操作系统中就有使用面向过程开发的,也有面向对象。
分别是linux系统(面向过程)和windows系统(面向对象)。
对于这两个开发范式的对比并不是说谁好谁坏,只是为了明确这两者之间的区别,以及在我们以后的开发中酌情去考虑应该使用哪种方式去开发。