面向对象
面向对象的目的是抽象实体,而不是实体的完成的步骤,使代码达到可复用,可扩展的功能,但分析过程中需要不断细化抽象出来的类。
面向过程
面向过程的目的是抽象出实体间的交互,只为专门解决某一问题,代码运行速度快,但是不易扩展,复用。
面向对象和面向过程的区别
举个例子,建造一栋房子,你想到的是楼梯怎么盖,哪里要有柱子,哪里要有梁,哪里用什么材料等等(这就是面向对象),至于柱子该怎么建,用什么建,方的圆的,等等,这就是面向过程。
用面向过程问题更符合我们人的思考方式。
而面向对象的思考方式就只关心对象的属性行为。比如:你考虑的建房子,不考虑用什么方法去完成,你不用去想着怎么盖楼梯,怎么盖屋顶,
面向对象也可以说是从宏观方面思考问题,而面向过程可以说是从细节处思考问题。在面向对象中,也存在面向过程。
两者之间有无优略之分
面向对象的设计思想主要侧重于大型的程序,就比如Windows操作系统是C++编写的,WINDOWS本身属于微内核系统,WINDOWS2000则已经有20余万行代码,其中80%是用C++编写,其余部分有C和汇编,底层接口用汇编编写,微软选择C++的根本原因是WINDOWS操作系统本身是微内核系统,所以扩展性及以后的维护要求非常重要,所以C++的类的概念就能在这里很好的利用,
面向过程就比较侧重于小型程序,但是linux却用的是C语言,这主要是因为C编译的机器码运行效率高,同时C源码可以模拟面向对象的写法。总的来说,C是各方面比较均衡的语言,很适合编写操作系统这种既注重性能又规模庞大的软件。
另外,Linux内核也不全是用C语言写的,与平台有关的部分,必要时采用相应平台的汇编语言来写。
从中我么可以看出两大操作系统Linux与Windows一个使用面向过程的语言,一个使用面向对象的语言,但是两者都有使用对方思想的代码,这就需要开发人员进行抉择,选择最合适的软件开发方法。