面向过程:
C语言是典型的面向过程的语言。C语言程序是由一个个函数组成的,我们是通过函数之间的调用关系来解决问题的。这就是面向过程的核心。
面向过程侧重于如何解决问题,解决问题的具体步骤。通过函数调用来解决具体的问题,即第一步需要怎么做,第二步需要怎么做......
面向过程在解决问题的步骤与脉络上是十分清晰的。
面向过程的关注点是过程,分析求解问题的步骤,通过函数调用逐步解决问题。
对于不太复杂的问题情况,面向过程具有非常大的优势,但是对于逻辑关系复杂,问题规模达到一定程度的时候,面向过程就会显得力不从心。
面向对象:
C++、Java等语言是基于面向对象的语言。它们较于C语言的最大差别在于引入了类的概念,而对象是类的实例化。我们指挥通过不同对象的行为从而组成了问题的解决方案。
面向对象的对象指的是在问题所提供的场景中,一切我们可以感知到的事物。所有参与问题且可以被感知到的事物都是对象,比如赵本山小品中那个经典的问题——把大象装冰箱,问题中的人,大象,冰箱都是我们面向对象的对象。
面向对象的每一个对象并不需要关心问题具体的解决过程,每个对象都只需要关注自己在什么时候需要完成什么行为即可。
简单来说,面向对象的关注点是对象,讲一件事情拆分成为不同的对象,靠对象之间的交互来解决问题。
面向过程与面向对象并不是具体的语言,它们是两种解决问题的方式,是两种思考方式。
不同的问题,不同的背景下,我们应该选择不同的方式来对问题进行解决,才可以事半功倍。只是说通常情况下,在大型项目之中,会更偏向于使用面向对象的思想来解决问题,更加方便事后对项目的维护。
面向对象的可维护性与可拓展性比面向过程更强。
面向对象的系统相较于面向过程更加灵活。
面向过程的性能往往比面向对象更好。
总结:
面向过程:
优点:比面向过程性能好
缺点:没有面向对象易维护,易复用,易扩展
面向对象:
优点:比面向过程易维护,易复用,易扩展
缺点:没有面向过程性能好
可能不是很形象。请指正